我有一个文件可能包含错误的格式(在这种情况下,模式的出现\\backslash).我想用它grep来只返回发生这种情况的行号(如同,匹配在这里,转到第x行并修复它).
但是,似乎没有办法打印行号(grep -n)而不是匹配或行本身.
我可以使用另一个正则表达式来提取行号,但我想确保grep不能单独执行.grep -no我认为,最接近,但仍显示匹配.
lov*_*nux 139
尝试:
grep -n "text to find" file.ext | cut -f1 -d:
Run Code Online (Sandbox Code Playgroud)
bri*_*cer 43
如果您愿意使用AWK:
awk '/textstring/ {print FNR}' textfile
Run Code Online (Sandbox Code Playgroud)
在这种情况下,FNR是行号.当您查看grep | cut时,或任何想要获取grep输出并操作它的时候,AWK都是一个很棒的工具.
mav*_*ick 29
所有这些答案都需要grep来生成整个匹配行,然后将其传递给另一个程序.如果你的线很长,那么使用sed来输出线号可能更有效:
sed -n '/pattern/=' filename
Run Code Online (Sandbox Code Playgroud)