我有一个可能包含错误格式的文件(在本例中,出现了模式\\backslash
)。我想使用grep
来只返回出现这种情况的行号(如在这里,匹配在这里,转到第#x行并修复它)。
但是,似乎没有一种方法可以打印行号(grep -n
),而不是打印匹配或行本身。
我可以使用另一个正则表达式来提取行号,但我希望确保grep不能自己完成。我认为grep -no
是最接近的,但仍然显示匹配结果。
发布于 2011-08-05 23:43:27
尝试:
grep -n "text to find" file.ext | cut -f1 -d:
发布于 2011-08-07 12:06:21
如果您对使用AWK持开放态度:
awk '/textstring/ {print FNR}' textfile
在本例中,FNR是行号。当您正在查看grep|cut时,或者在任何时候需要获取grep输出并对其进行操作时,AWK都是一个很好的工具。
发布于 2013-09-18 19:02:10
所有这些答案都需要grep生成整个匹配的行,然后通过管道将其传递给另一个程序。如果您的行很长,那么使用sed输出行号可能会更有效:
sed -n '/pattern/=' filename
https://stackoverflow.com/questions/6958841
复制相似问题