码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 学习总结(十九)正则三剑客之grep

时间:2018-03-04 21:21:20      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:grep

grep
过滤器,egrep可以理解为grep的升级版
1 格式:grep [-cinvABC] ‘word‘ filename
-c:统计符合要求的行数
例如 : grep -c ‘root‘ /etc/passwd
grep -c ‘‘ /etc/passwd 统计文件总行数
-i:忽略大小写
-n:行号输出
grep -n ‘root‘ /etc/passwd
-v 打印不符合要求的行, 补集
-An 打印符合要求的行同时带上下面n行,n为数字
-Bn 打印符合要求的同时带上上面n行
-Cn 打印符合要求的同时上下都带上n行
附上-c ,-n ,-v的运行结果
grep ‘root‘ -c /etc/passwd;grep ‘‘/etc/passwd -c
技术分享图片
head /etc/passwd |grep ‘root‘ -n
技术分享图片
head -3 /etc/passwd |grep ‘root‘ -nv
技术分享图片
举例:
grep 结合正则表达式的例子:
技术分享图片
2 过滤出所有带数字的行
grep ‘[0-9]‘ test.txt -n
技术分享图片
3 过滤出以#好开头的行
grep ‘^#‘ test.txt -n
技术分享图片
重新编辑test.txt.
技术分享图片
4 过滤出非纯数字的行
grep ‘[^0-9]‘ test.txt
符号^放进[]里面表示非的意思,放在[]外面表示以某个字符开头例如:
技术分享图片
5 过滤出非数字开头的行
grep ‘^[^0-9]‘ test.txt
技术分享图片
7 对上命令取反过滤出以数字开头的行
grep -v ‘^[^0-9]‘ test.txt
技术分享图片
该命令相当于 grep ‘^[0-9]‘ test.txt
重新编辑test.txt
技术分享图片
8 . 点 字符 匹配任意一个字符
grep ‘r.t‘ test.txt
技术分享图片
9 * 匹配之前的项0次或多次
grep ‘r\*t‘ test.txt
技术分享图片
10 .* 组合起来,就是匹配所有字符
技术分享图片
以下列举的正则符号均不能直接用grep,需要加-E选项,或者给符号加转义字符,为了方便我们直接使用egrep
11 {n} 匹配之前的项n次,
{n,} 匹配之前的项n次及其以上
{n,m} 指定之前的项所需匹配的最小次数和最大次数
egrep ‘r{2}t‘ test.txt
egrep ‘r{2,}t‘ test.txt
egrep ‘r{1,2}t‘ test.txt
技术分享图片
12 + 匹配之前的项1次或多次,*是从0次开始,+是从1次开始
egrep ‘r+t‘ test.txt
技术分享图片
13 ? 匹配之前的项0次或1次
egrep ‘r?t‘ test.txt
技术分享图片
14 | 匹配|两边的任意一项
egrep ‘root|rt’ test.txt
技术分享图片
或者 egrep ‘r(t|o)‘ test.txt
技术分享图片
以上()创建了一个用于匹配的字符串

Linux 学习总结(十九)正则三剑客之grep

标签:grep

原文地址:http://blog.51cto.com/12606610/2082834

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!