使用grep获取行号

我正在使用greprecursionsearch一个string的文件,所有匹配的文件和包含该string的行都在terminal上打印。 但是有可能获得这些行的行号?

例如:目前我得到的是/var/www/file.php: $options = "this.target" ,但是我想得到的是/var/www/file.php: 1142 $options = "this.target"; ,那么1142将是包含该string的行号。

语法我用greprecursion是sudo grep -r 'pattern' '/var/www/file.php'

还有一个问题是,我们如何得到不等于模式的结果。 像所有的文件,但不是有一定的string?

 grep -nr SEARCHTERM file1 file2 ... 

行号用grep -n打印:

 grep -n pattern file.txt 

为了得到行号(没有匹配的行),可以使用cut

 grep -n pattern file.txt | cut -d : -f 1 

包含模式的行用grep -v打印:

 grep -v pattern file.txt 

如果你只想要行号这样做:

 grep -nr Pattern file.ext | gawk '{print $1}' FS=":" 

例:

 $ grep -nr 9780545460262 EXT20130410.txt | gawk '{print $1}' FS=":" 48793 52285 54023 
 grep -A20 -B20 pattern file.txt 

search模式并在模式之前和之后显示20行

grep -nr“searchstring”目录

这给你线行号。