9.14 列出包含搜索内容的文件名
-l
grep
命令能够列出包含你要搜索的内容的行,但有时可能并不需要知道这些行的具体内容,而只要知道包含这些匹配行的文件名称就可以了。在9.8节中,曾经在H.P. Lovecraft的小说中查找包含hideous的行。而用-l
(或--files-with-matches
)选项,就能够只列出这些行所在的文件(记住,-i
选项用于让搜索不区分大小写)。
$ grep -il hideous h_p_lovecraft/*
h_p_lovecraft/Call of Cthulhu.txt
h_p_lovecraft/From Beyond.txt
h_p_lovecraft/The Case of Charles Dexter Ward.txt
当和其他命令结合使用时,这种结果会变得特别有用。例如,如果你想把包含hideous这个词的Lovecraft小说列表打印出来,可以把grep
和lpr
命令按以下方式组合起来:
$ grep -il hideous h_p_lovecraft/* | lpr
注意,这个命令打印的只是小说的名称列表,而不是小说本身(不过,有办法可以做到这一点,这里给个提示:与cat
命令有关)。