grep简单用法

grep

常用参数:

-c: 打印符合要求的行数

-i :忽略大小写

-n:输出行和行号

-v:打印不符合要求的行,即反选

-A:后跟数字(有无空格都可以),例如-A2 表示打印筛选行及前2行

-B:后跟数字,例如-B2表示打印筛选行及后2行

-C:后跟数字,例如-C2表示打印筛选行及前后各2行

-o:只打印符合要求的内容,而非整行

示例:

text.txt内容:

abc

123

efg

456

hij789

012ABC

Hello World

grep -c abc text.txt

 1

grep -i abc text.txt

 

grep -n abc text.txt

 

 grep -ivn abc text.txt

 

grep -A 2 abc text.txt

 

正则表达式

[0-9] 匹配所有数字

[03]  匹配0或者3

[0-9a-zA-Z] 匹配所有数字大小写字母

grep [0-9] text.txt

 

grep [1] text.txt

 

grep [a-zA-Z] text.txt

[^字符]表示除[]之外的字符。注意:此时将去除完全符合的行,混合内容不会去除

grep [^0-9] text.txt

 

通过反选,可以查看上次的结果grep -v [^0-9] text.txt 

grep '[^r]oo' test.txt 打印不包含r,但包含oo的行

^表示行首,$表示行尾,空行用^$表示

grep '^[0-9]' text.txt 打印以数字开头的行

grep '[0-9]$' text.txt 打印以数字结尾的行

grep '^$' text.txt 打印空行

过滤任意一个字符与重复字符

. 表示任意一个字符 * 表示0或多个前面的字符 .*表示0或多个任意字符,空行也包含在内

grep 'r..t' file 把符合r和t之间有2个任意字符的行打印出来

grep 'ooo*' file oo,ooo,oooo....全部打印

指定要过滤字符出现的次数{n1,n2},其中n1小于n2,表示重复n1到n2次前面的字符,n2可以为空,表示大于等于n1次。这个命令结合-o使用,能够看到匹配结果

grep -o '1\{2\}'  text.txt

 

grep -o  '1\{3,5\}' text.txt 

猜你喜欢

转载自www.cnblogs.com/csj2018/p/9158963.html