Files
grep 匹配後如何計算文件中的行數?
我正在嘗試計算 csv 文件中出現問題的行之後的行數。我知道我可以使用
grep -a #
語法在找到匹配項後輸出 # 行數。我只對實際的行數感興趣。我意識到我可以將數字設置為 MAX_INT,將其通過管道傳輸到文件中並進行更多處理。我正在尋找一個簡潔的單線來告訴我計數。
有什麼建議麼?
{ grep -m1 match; grep -c ''; } <file
這將與 GNU
grep
和一個有lseek()
能力的 infile 一起工作。第一個grep
將在 1 個 atch 處停止,-m
第二個將計算-c
輸入中剩餘的每一行。沒有 GNU
grep
:{ sed '/match/q'; grep -c ''; } <file
當然,
grep
除此之外,您還可以使用任何/所有其他選項,並且根本不需要在一場比賽中停下來。
這是一種方法。
$ cat foo aaa bbb ccc ddd eee fff $ awk '/^ddd/{a=FNR}END{print FNR-a}' foo 2 $