grep命令常用参数及用法

本文详细介绍了Linux中的grep命令,包括其基本介绍、常用的参数选项,以及如何结合正则表达式进行高效文本搜索。通过学习,你可以掌握grep的强大功能,提升在文本处理上的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、grep介绍


grep命令是Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。

2、grep常用参数


-a :将 binary 文件以 text 文件的方式搜寻数据 
-c :计算找到 '匹配字符串' 的次数 
-i :忽略大小写的不同,所以大小写视为相同 
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

比如test.txt文件内容如下:
1000 20 nan
1001 21 nv
1002 23 Nan

//忽略大小写进行匹配并显示行号
grep -ni 'nan' test.txt

1:1000 20 nan
3:1002 23 Nan

//忽略大小写进行”非“匹配 并显示行号
grep -ni 'nan' test.txt

2:1001 21 nv


3、grep正则表达式


Re含义
^word待匹配的字符串(word)在行首!
如:grep '^1000' test.txt
返回:1000 20 nan
word$待匹配的字符串(word)在行末!
如:grep 'nv$' test.txt
返回:1001 21 nv
.代表任意一个字符,一定是一个任意字符!
搜寻的字符串可以是 (eve) (eae) (eee) (e e), 但不能仅有(ee) !亦 即e 与e 中间一定仅有一个字符,而空格符也是字符!
如:grep 'n.n' test.txt
返回:1000 20 nan
\转义字符,特殊字符如 ' {  }
如:grep -n \' test.txt
匹配含有单引号'  的那一行!
*重复零个或多个的前一个RE 字符,注意*号前面一定要有字符
如:grep 'n*' test.txt
返回:1000 20 nan
    1001 21 nv
            1002 23 Nan
\{n,m\}连续n 到m 个的前一个RE 字符
若为\{n\} 则是连续n 个的前一个RE 字符,
若是\{n,\} 则是连续n 个以上的前一个RE 字符!
[ ]字符集合的RE 特殊字符的符号
[abc]:表示匹配a或者b或者c
[a-z]:表示匹配a,b,c,...z这26个字母中任何一个
[^a-z]:表示字符串的开头只要不是小写字母a-z,则都能匹配成功
[a-z$]:表示字符串的结尾只要是小写字母a-z,则都能匹配成功


扩展的正则表达式:egrep 'pattern' file.txt   或者用  grep -E 'pattern' file.txt

Re含义
+重复『一个或一个以上』的前一个RE 字符
如:egrep -n 'go+d' regular_express.txt
则:(god) (good) (goood)等会匹配成功
?『零个或一个』的前一个RE 字符
如:egrep -n 'go?d' regular_express.txt
则:(gd) (god)等会匹配成功
|用或( or )的方式找出数个字符串
如:egrep -n 'gd|good' regular_express.txt
则:匹配gd 或good 这两个字符串
()找出『群组』字符串
如:egrep -n 'g(la|oo)d' regular_express.txt
则:匹配(glad) 或(good) 这两个字符串


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值