A. linux下按文件名和文件内容查找文件
在当前目录下,查找所有内容包含‘abc'的文件
find . -type f | xargs grep -l 'abc'
或
find . -type f -exec grep -l 'abc' {} ;
(1)grep命令显示文件名扩展阅读:
linux查找文件命内令find
根据部分文件名查找方法:容
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find /etc -name '*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm 这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc -name 'srm*'
这是只有像srmyz 这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
B. #grep ‘Linux’ filename命令查找的是什么文件
查找文件包含 "Linux"字符串的行linux下的grep:1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(只适用于单字符)。-h:查询多文件时不显示文件名。-l:查询多文件时只输出包含匹配字符的文件名。-n:显示匹配行及 行号。-s:不显示不存在或无匹配文本的错误信息。-v:显示不包含匹配文本的所有行。pattern正则表达式主要参数:\: 忽略正则表达式中特殊字符的原有含义。^:匹配正则表达式的开始行。$: 匹配正则表达式的结束行。\<:从匹配正则表达 式的行开始。\>:到匹配正则表达式的行结束。[ ]:单个字符,如[A]即A符合要求 。[ – ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。。:所有的单个字符。* :有字符,长度可以为0。4.grep命令使用简单实例$ grep ‘test’ d*显示所有以d开头的文件中包含 test的行。$ grep ‘test’ aa bb cc显示在aa,bb,cc文件中匹配test的行。$ grep ‘[a-z]\{5\}’ aa显示所有包含每个字符串至少有5个连续小写字符的字符串的行。$ grep ‘w\(es\)t.*\1′ aa如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。
C. Linux用grep命令,列出当前目录下的所有子目录名
|两种方法,选择自己喜欢的风格:(1)同一楼:ls -l |grep ^d 从ls -l 的结果中提取以d(directory目录)版开头的字串,效权果如下:drwxrwxr-x 4 haha haha 40K Dec 8 03:01 CIAF2drwxrwxr-x 2 haha haha 4.0K Dec 10 14:08 Reference(2)同样的思路 ls -F | grep / 从ls -F 的结果中提取以 /(表示目录),效果如下:CIAF2/Reference/
D. linux find 怎样取得文件名呢
find ./ -name "*.m" -exec grep -l 'myCenter' {} \; grep加入-l选项,就能将找到的文件名列出linux中的find命令——查找文件名 1.在某目录下查找名为“elm.cc”的文件find /home/lijiajia/ -name elm.cc 2.查找文件名中包含某字符(如"elm")的文件find /home/lijiajia/ -name '*elm*'find /home/lijiajia/ -name 'elm*'find /home/lijiajia/ -name '*elm' 3.根据文件的特征进行查询find /home/lijiajia/ -amin -10 #查找在系统中最后10分钟访问的文件find /home/lijiajia/ -atime -2 #查找在系统中最后48小时访问的文件find /home/lijiajia/ -empty #查找在系统中为空的文件或者文件夹find /home/lijiajia/ -group cat # 查找在系统中属于groupcat 的文件(试了,命令不对。)find /home/lijiajia/ -mmin -5 # 查找在系统中最后5 分钟里修改过的文件find /home/lijiajia/ -mtime -1 #查找在系统中最后24 小时里修改过的文件find /home/lijiajia/ -nouser #查找在系统中属于作废用户的文件(不明白是什么意思)find /home/lijiajia/ -amin 10 #查找在系统中最后10分钟访问的文件find /home/ftp/pub -user lijiajia #查找在系统中属于lijiajia这个用户的文件(PS:以上都是在 /home/lijiajia/文件夹下进行的操作) 4.使用混合查找方式查找文件find /tmp -size +10000000c -and -mtime +2 #查找/tmp目录中大于10000000字节并且在48小时内修改的某个文件find /tmp -user tom -or -user george #查找/tmp目录中属于tom或者george这两个用户的文件find /tmp ! -usr fred #查找/tmp目录中不属于fred的文件 5.查找并显示文件find /home/lijiajia/ -name 'elm.cc' -ls #在目录下查找名为“elm.cc”的文件,并显示这些文件的信息
E. Linux中使用grep命令搜索文件名及文件内容的方法
从文件中搜索并显示文件名当你从不止一个的文件中搜索时,默认它将显示文件名:代码如下:grepword文件名greproot/etc/*示例输出:代码如下:/etc/bash.bashrc:Seemansudo_rootfordetails./etc/crontab:17****rootcd/run-parts–report/etc/cron.hourly/etc/crontab:256***roottest-x/usr/sbin/anacron||(cd/run-parts–report/etc/cron.daily)/etc/crontab:476**7roottest-x/usr/sbin/anacron||(cd/run-parts–report/etc/cron.weekly)/etc/group:root:x:0:grep:/etc/gshadow:Permissiondenied/etc/logrotate.conf:create0664rootutmp/etc/logrotate.conf:create0660rootutmp每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用-l选项可以只显示文件名:代码如下:grep-lstringfilenamegrep-lroot/etc/*示例输出:代码如下:/etc/aliases/etc/arpwatch.confgrep:/etc/at.deny:Permissiondenied/etc/bash.bashrc/etc/bash_completion/etc/ca-certificates.conf/etc/crontab/etc/group你也可以逆转输出;使用-L选项来输出那些不匹配的文件的文件名:代码如下:grep-Lwordfilenamegrep-Lroot/etc/*示例输出:代码如下:/etc/apm/etc/apparmor/etc/apparmor.d/etc/apport/etc/apt/etc/avahi/etc/bash_completion.d/etc/bindresvport.blacklist/etc/blkid.conf/etc/bluetooth/etc/bogofilter.cf/etc/bonobo-activation/etc/brlapi.key根据文件内容查找文件输入以下命令:代码如下:grep'string'*.txtgrep'main('*.cgrep'#include'*.cgrep'getChar*'*.cgrep-i'ultra'*.confgrep-iR'ultra'*.conf其中-i:忽略模式(匹配字符串valid、VALID、ValID)和输入文件(匹配file.cFILE.cFILE.C)的大小写。-R:递归读取每个目录下的所有文件。高亮匹配到的模式在搜索大量文件的时候你可以轻松地高亮模式:代码如下:$grep–color=auto-iR'getChar();'*.c为查找到的模式显示文件名和行号你也许需要显示文件名和行号:代码如下:$grep–color=auto-iRnH'getChar();'*.c其中,-n:在输出的每行前面添加以1开始的行号。-H:为每个匹配打印文件名。要搜索多个文件时这是默认选项。(LCTT译注:-h选项强制隐藏文件名;另外-l和-L选项用于仅显示匹配/不匹配的文件名,而-H和-h用于控制在显示匹配行前显示/不显示文件名,注意区分。)代码如下:$grep–color=auto-nH'DIR'*输出样例:你也可以使用find命令:代码如下:$find.-name*.c-print|xargsgrepmain(
F. linux用grep在文件中查找字符串并显示字符串在文件中的行号
如果你想在当前目录下 查找"hello,world!"字符串,可以这样:grep -rn "hello,world!" ././ : 表示路径为当前目录.-r 是递归查找-n 是显示行号
G. linux中列出所有文件名以某个字符结尾的文件用什么命令
find /etc |grep wd$这条命令是列出etc下所有文件中以 wd结尾的文件不知道是不是你要的命令
H. unix 怎么用 grep 命令检索最新的文件名称
ls -lt | grep aaa | head -n 1ls -lt | grep bbb | head -n 1ls -lt| grep ccc | head -n 1如果只查文件,去掉文件夹,可以执行:ls -lt |grep -v '^d' | grep ccc | head -n 1head后面需要-n,否则命令格式不对的,这样就可以获取到某类文件中时间最近修改的一个ls -lt 是以长列表形式,时间最新的顺序排列,| 表示把前面的输出作为后面的输入 grep ***表示从列表中匹配出名字中包含***的文件/文件夹,head -n 表示输出前面几行.
I. grep命令找出当前路径包括子文件夹里文件中含有“aaa"的shell命令
grep'aaa'-drecurse-c.2>/dev/null|grep-v':0$'
-d 参数代表读取目录 recurse 代表 递归读取
管道符号前的 grep 会生成 文件名:匹配数 类似这个
./.cache/google-chrome/Default/Cache/dfe2088b363a5932_1:1./.cache/google-chrome/Default/Cache/102987e4c5d0bde5_1:2
第二个 grep 筛选 匹配行数不为 0 的。
J. 用grep 匹配某字符串时,结果有一个html显示整个文件内容。怎么才能只显示文件名。
使用grep命令时加上 -l 选项, 例如:在当前目录所有文件中查找包含“abc”的文件并列出文件名 , 使用下面的 命令 grep -l abc *