首页 > 其他 > 详细

grep命令常用参数及用法

时间:2014-10-31 22:11:11      阅读:280      评论:0      收藏:0      [点我收藏+]

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) 这两个字符串


grep命令常用参数及用法

原文:http://blog.csdn.net/wzgang123/article/details/40660621

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!