使用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)