找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 176|回复: 0

grep命令,查找含有某字符的文件

[复制链接]

146

主题

17

回帖

550

积分

超级版主

积分
550
发表于 2024-1-7 18:07:33 | 显示全部楼层 |阅读模式
grep命令,查找含有某字符的文件

在某个目录中查找一个字符串,例如 "王思聪" ,我们可以这样:

grep -rn 王思聪 *

解释如下:

* : 表示从当前目录中查找所有的文件,也可以是特定的文件名,例如 abc.log

-r 是递归查找

-n 是显示行号

-R 查找所有文件包含子目录

-i 忽略大小写

下面是其他一些命令参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写

例如 grep -i ErrorString abc.log

表示:不区分大小写的搜索出abc.log这个文件中含有 "ErrorString" 这个字符串的数据行

grep -l pattern files :只列出匹配的文件名

例如 grep -l 乔布斯 *

表示:列出所有含有 “乔布斯” 这个字符串的文件名

grep -L pattern files :列出不匹配的文件名

例如 grep -L 马云 abc.log*

表示:列出所有不含有“马云”这个字符串的文件名(并且文件名符合 abc.log* 匹配)

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)

例如 grep -w 马云 abc.log

表示:列出所有含有“ 马云 ”这个字符串的文件行,注意 “马云”这个字符串前后都要有空格

grep -C number pattern files :匹配的上下文分别显示[number]行

例如 grep -C 5 ErrorString abc.log

表示:搜索出abc.log这个文件中含有 "ErrorString" 这个字符串的数据行,并且将含有这个字符串的前后5行的数据一起显示出来

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行

例如 grep 马云|马化腾 abc.log

表示:搜索出abc.log这个文件中含有 “马云”或者“马化腾” 的数据行

grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行

例如 grep 马云 abc.log | grep 马化腾

表示:搜索出abc.log这个文件中既含有 “马云” 又含有 “马化腾” 的数据行

一些特殊符号:

< > 分别标注搜索词的开始与结尾。

例如:

grep 扎克伯格 * 匹配 ‘扎克伯格吃饭了’、‘扎克伯格和马云’、‘帅哥扎克伯格’等。

grep '<库克' * 匹配‘库克好男人’和‘库克船长’,但不是‘乔布斯的继承人库克’。

grep '<man>' 匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

'^': 匹配的字符串在行首。

'$': 匹配的字符串在行尾。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|333cm ( 京ICP备16037542号 )

GMT+8, 2024-5-21 01:41 , Processed in 0.084826 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表