使用grep只回报行号

我有一个可能包含错误格式的文件(在这种情况下,模式backslash )。 我希望使用grep只返回发生这种情况的行号(例如,匹配在这里,请到第#行并修复它)。

但是,似乎没有办法打印行号( grep -n ),而不是匹配或行本身。

我可以使用另一个正则表达式来提取行号,但我想确保grep不能自行完成。 我认为grep -no最接近,但仍显示匹配。


尝试这个:

grep -n "text to find" file.ext |cut -f1 -d:

如果您打算使用AWK:

awk '/textstring/ {print FNR}' textfile

在这种情况下,FNR是行号。 AWK是一款非常棒的工具,当您查看grep |剪切,或任何时候您正在寻找grep输出并操作它。


所有这些答案都需要grep来生成整个匹配行,然后将其传递给另一个程序。 如果你的线路很长,使用sed来输出线路号可能会更有效率:

sed -n '/pattern/=' filename
链接地址: http://www.djcxy.com/p/19693.html

上一篇: Use grep to report back only line numbers

下一篇: Count number of occurrences of a pattern in a file (even on same line)