grep简单用法

grep正则表达式

经常使用参数:spa

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

-i :忽略大小写blog

-n:输出行和行号test

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

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

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

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

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

示例:

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 

相关文章
相关标签/搜索