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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 学习总结(十九)正则三剑客之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的主要内容,如果未能解决你的问题,请参考以下文章

Linux文本处理三剑客之grep

Linux三剑客之grep伐木累(正则表达式)

llinux文本三剑客之grepegrep及相应的正则表达式和用法

linux12shell编程 --> 三剑客之grep命令

Linux文本处理三剑客之grep一族与正则表达式

Linux 文本处理三剑客之grep