【发布时间】:2017-01-15 04:04:32
【问题描述】:
我在 bash 终端中。我被 cd 到一个文件夹(网络应用程序文件夹)
我正在寻找一个文件。我知道它存在。我不知道在哪个 sub sub.. 文件夹下。我所知道的是,在文件中出现了这些词: “轮播”“javascript”“图表”
我怎样才能找到这个文件?
【问题讨论】:
标签: linux bash unix search grep
我在 bash 终端中。我被 cd 到一个文件夹(网络应用程序文件夹)
我正在寻找一个文件。我知道它存在。我不知道在哪个 sub sub.. 文件夹下。我所知道的是,在文件中出现了这些词: “轮播”“javascript”“图表”
我怎样才能找到这个文件?
【问题讨论】:
标签: linux bash unix search grep
如果您想查找包含以下任何单词的文件,请尝试运行此命令:
grep -rE 'foo1|foo2' .
如果你想找到包含所有这些单词的文件,
试试这个:
grep -r 'foo1' .|grep 'foo2'
如果你想在文件中的不同行查找多个字符串,
你可以使用
grep -rl 'foo1' .|xargs grep -l 'foo2'
-r
对于每个目录操作数,读取并处理该目录中的所有文件 目录,递归。按照命令行上的符号链接,但 跳过递归遇到的符号链接。请注意,如果没有文件 给定操作数,grep 搜索工作目录。
-E
使用模式作为模式。如果多次使用此选项或 结合 -f (--file) 选项,搜索所有模式 给定的。 (-e 由 POSIX 指定。)
您可以阅读GNU Grep 2.27 以了解有关grep 的更多信息。
希望这会有所帮助。
【讨论】:
要从当前目录向下搜索所有目录,试试这个:
find . -type f -exec egrep 'carousel|javascript|chart' {} \; -print
这将找到所有包含您选择的单词的文本文件。 如果您知道要搜索的特定文件扩展名,可以像这样修改它以搜索 Python 文件:
find . -name '*.py' -type f -exec egrep 'carousel|javascript|chart' {} \; -print
【讨论】:
如果您使用轮播和 javascript 和图表搜索所有文件,您可以尝试:
find . -type f -exec sh -c 'grep -q carousel $1 && grep -q javascript $1 && grep -q chart $1 && echo $1' sh {} \;
例子:
$ cat a.txt
carousel
javascript
chart
$ cat b.txt
carousel
chart
结果:
./a.txt
【讨论】: