9.14 列出包含搜索内容的文件名

-l

grep命令能够列出包含你要搜索的内容的行,但有时可能并不需要知道这些行的具体内容,而只要知道包含这些匹配行的文件名称就可以了。在9.8节中,曾经在H.P. Lovecraft的小说中查找包含hideous的行。而用-l(或--files-with-matches)选项,就能够只列出这些行所在的文件(记住,-i选项用于让搜索不区分大小写)。

  1. $ grep -il hideous h_p_lovecraft/*
  2. h_p_lovecraft/Call of Cthulhu.txt
  3. h_p_lovecraft/From Beyond.txt
  4. h_p_lovecraft/The Case of Charles Dexter Ward.txt

当和其他命令结合使用时,这种结果会变得特别有用。例如,如果你想把包含hideous这个词的Lovecraft小说列表打印出来,可以把greplpr命令按以下方式组合起来:

  1. $ grep -il hideous h_p_lovecraft/* | lpr

注意,这个命令打印的只是小说的名称列表,而不是小说本身(不过,有办法可以做到这一点,这里给个提示:与cat命令有关)。