Answers:
尝试:
grep -n "text to find" file.ext | cut -f1 -d:
-f
参数。对我来说是-f2
。(知道这是旧东西,但我认为它可以帮助一些可怜的人)
grep -n "text to find" file.ext | cut -f1,2 -d:
显示文件名和行号。
-H
以强制在只有一个文件时显示文件名。相反,-h
无论您要抓取多少文件,都可以始终告诉它不输出文件名。
如果您愿意使用AWK:
awk '/textstring/ {print FNR}' textfile
在这种情况下,FNR是行号。当您查看grep | cut或任何时候想要获取grep输出并对其进行操作时,AWK是一个很好的工具。
NR
在这种情况下,当仅检查一个文件时,效果也很好。
重击版本
lineno=$(grep -n "pattern" filename)
lineno=${lineno%%:*}
仅使用grep:
grep -n "text to find" file.ext | grep -Po '^[^:]+'
grep -no
!这就是我来这里尝试做的事情!(即,不打印有时会很长的行,例如,缩小的javascript源文件。)