如何在Linux下查找文件内容包含某个特定字符串的文件?
我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹
我想请问的是,如何通过查找关键字test从而找到test1跟test2还有test,并且不显示其他文件
我尝试过用find /path -name test查找,结果出来的是/path/test2/testls test*查找,结果连同test1跟test2里面的子文件都显示出来,罗列了一大堆我还尝试了用find test*查找,结果跟用上面的一样,只是罗列的方式不一样而已
以下是对查找常用的命令归纳【相应大家在linux上常用】
find:
查找文件:find ./actions/ -name Constract.php查找包含leyangjun字母的文件:find /etc -name '*leyangjun*'查找srm开头的文件:find/etc -name 'srm*'我们要在/usr目录及子目录下查找文件名包含“leyangjun”关键字的文件:find /usr -print |grep leyangjun
grep:
在Constract.php文件中查找字符leyangjun的行:grep 'leyangjun' Constract.php不区分大小写地搜索。默认情况区分大小写:grep -i 'ModifySubacction' controllers/Constract.php
管道查询:
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”leyangjun”的行:find / -type f -name "*.log" | xargs grep "leyangjun"
当前目录开始查找所有扩展名为.php的文本文件,并找出包含”leyangjun”的行:find ./ -name "*.php" | xargs grep "leyangjun"