如何获取所有文件的名称(在一个目录中)包含一定的文本行?

时间:2014-08-03 03:09:46

标签: bash

例如:

我希望得到包含所有文件的名称

start on startup 
/etc/init中的

2 个答案:

答案 0 :(得分:2)

你可以尝试下面的grep命令,

$ cd /etc/init
$ grep -l "start on startup" *

OR

通过一个命令,

$ grep -l "start on startup" /etc/init/*

来自man grep

-l, --files-with-matches  print only names of FILEs containing matches

答案 1 :(得分:2)

我相信以下应该可以解决问题:

grep -ls 'start on startup' /etc/init/*

这将浏览/etc/init目录中的所有文件,并仅打印文件名,同时也省略任何错误(即/etc/init/<dir_name> is a directory)。

以下是解释-l选项的帖子:grep-show-just-filenames

以下是另一篇解释-s选项的帖子:grep-omit-file/directory-errors