Grep列表文件名和行号

您好,我正在尝试使用grep来搜索我的rails目录。 我正在寻找一个特定的词,我想grep打印出文件名和行号。 有没有grep的国旗会为我做这件事? 我一直试图使用-n和-l的组合,但是它们要么打印出没有数字的文件名,要么只是将大量文本扔到终端,这些文本不容易被读取。

例如:

  grep -ln "search" *

我需要将它管到awk吗?


我认为-l限制性太强,因为它会抑制-n的输出。 我会建议-H (-- --with-filename ):打印每个比赛的文件名。

grep -Hn "search" *

如果输出太多,请尝试-o仅打印匹配的部分。

grep -nHo "search" * 

grep -rin searchstring * | cut -d: -f1-2

这就是说,递归搜索(用于字符串searchstring在这个例子中),忽略大小写,并显示行号。 该grep的输出将如下所示:

/path/to/result/file.name:100: Line in file where 'searchstring' is found.

接下来,我们使用冒号将结果传递给cut命令:作为字段分隔符并显示字段1到2。

当我不需要行号时,我经常使用-f1 (只是文件名和路径),然后将输出传递给uniq ,这样我只能看到每个文件名一次:

grep -ir searchstring * | cut -d: -f1 | uniq

我喜欢使用:

grep -niro 'searchstring' <path>

但那只是因为我总是忘记其他方式,出于某种原因,我不能忘记罗伯特德格雷普grep -尼罗

链接地址: http://www.djcxy.com/p/74309.html

上一篇: Grep list filename and line number

下一篇: App crashes after first Facebook Login