求在LINUX下,查找某一目录下文件的内容包含指定字符的文件名

查找的是文件名,但是给的指定字符是文件的内容,谢谢!

给定字符串查找文件名,例如,查找当前目录下所有文件中包含字符串"Linux"的文件,可以使用如下命令:egrep Linux *

举例:testfile、testfile1中都还有Linux,查找结果如下所示:

$ egrep Linux * #查找当前目录下包含字符串“Linux”的文件 

testfile:hello Linux!  

testfile:Linux is a free Unix-type operating system. 

testfile:Linux. 

testfile1:helLinux!

testfile1:This a Linux testfile! 


扩展资料

Linux egrep命令执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。

egrep是用extended regular expression语法来解读的,而grep则用basic regular
expression 语法解读,extended regular expression比basic regular
expression的表达更规范。



温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26

我看着这题很长时间了,本来不想回答了,但看到提交的答案,我不能不回答,有更简单的方法:

命令:grep [选项参数]  “要查找的内容字符串"  路径

-r :递归查找子目录

-l :只显示文件名

./ :当前目录路径

[root@-xl PythonTest]# grep -rl "python" ./
./stu.py
./gen.py
./test.py
./recursion.py

觉得不够好,那就替换掉文件名前的路径

[root@-xl PythonTest]# grep -rl "python" ./ |sed "s;./;;g"
stu.py
gen.py
test.py
recursion.py

本回答被网友采纳
第2个回答  2013-12-04
直接敲 grep "你的内容" -R . (后面有个点表示当前目录,你也可以加绝对路径)
第3个回答  2013-12-04
find . |xargs grep abc
find . -type f |xargs grep abc
find . -name "*.txt"|xargs grep abc
第4个回答  2013-12-04
很简单,一个命令搞定。比如你要找所有/home下文件名里包含 .a 的所有文件,终端输入:
# find /home -name *.a*
终端就会都显示出来~
记得有些文件夹只有root用户有权限,所以sudo一下
$ sudo find /home -name *.a*

求采纳,自己常用,100%正确~
相似回答