Files

grep 匹配後如何計算文件中的行數?

  • November 10, 2015

我正在嘗試計算 csv 文件中出現問題的行之後的行數。我知道我可以使用grep -a #語法在找到匹配項後輸出 # 行數。我只對實際的行數感興趣。我意識到我可以將數字設置為 MAX_INT,將其通過管道傳輸到文件中並進行更多處理。

我正在尋找一個簡潔的單線來告訴我計數。

有什麼建議麼?

{ grep -m1 match; grep -c ''; } <file

這將與 GNUgrep和一個有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
$

引用自:https://unix.stackexchange.com/questions/212147