在子目录中进行Grep搜索

从终端向文本文件添加字符串

我一直在看这个帖子。解决方案(第2个,使用ls grep)对于当前目录中名为.txt的文件完美适用。如果我想要在一个目录及其子目录中进行搜索怎么办呢?

例如,我必须在一个包含许多子目录的目录中进行搜索,而这些子目录又有很多子目录等等。

对不起,我是Linux新手,所以不确定这是否是正确的地方。


请查看这个链接:http://askubuntu.com/questions/55325/how-to-use-grep-command-to-find-text-including-subdirectories - devav2
2个回答

使用-R选项(相当于--recursive)来进行grep。
编辑:在阅读了帖子之后,在组合命令ls /mydata | grep txt$中,您不需要递归grep,而是需要递归ls。您不是对文件进行grep操作,而是对ls的输出进行grep操作,该输出恰好是一个文件列表。
"递归ls"被称为find :-)
find /mydata -type f | grep txt$

或者,更好的是,
find /mydata -type f -name '*.txt'

你应该添加“-type f”这样只有文件才会显示...在你的例子中,名为“bla.txt”的文件夹也会被列出来。但在现实生活中,你不会有那样的文件夹名称 :P - Wolfy
当然可以。但是我从来不这样做。 - January

我实际上是通过使用find . -type f而不是ls来解决的。

7没错,但那正是解决方案一。 - January