shell实战训练营Day4

grep egrep 匹配
grep -[cinrvABC] 'word' file
grep -c 'abc' file 列出file中 包含 abc的行
grep -n 'abc' file 列出file中 包含 abc的行,并显示行号
grep -i 'abc' file 不区分字母大小写
grep -v '[0-9]' file 取反 ,列出不包含[0-9]的行
grep -r 'word' /dir 遍历所有/dir下包含的word
grep -An 'abc' file (其中n为数字) 列出file中包含abc的行以及下面n行,共n+1行
grep -Bn 'abc' file (其中n为数字) 列出file中包含abc的行以及上面n行,共n+1行
grep -Cn 'abc' file (其中n为数字) 列出file中包含abc的行以及上面下面各n行,共2n+1行
grep -v '^$' file (^表示开头,$表示结尾) 列出file中的非空行
grep -n [^0-9] file (^在括号内表示逻辑关系“非”) 列出包含数字的行
grep -n ^[^0-9] file (^在括号外表示开头) 列出不是已[0-9]开头的行
grep 'a.b' file ·表示任意一个字符 可以是 数字,字母,符号
grep 'ab' file 表示任意个前面的字符 (本例中表示匹配a ,包含0个a)
grep .
file 全部匹配
grep 'a{0,2}' file 匹配0个至2个a,其中\为脱义符
grep -E 'a{0,3}' file 匹配0个至3个a,使用-E参数,可以不加脱义符
egrep 'a{0,2}' file 匹配0个至2个a
egrep 'a+b' file +表示匹配+前面字符 1次 或 多次 (本例中表示匹配1个或多个a)
egrep 'a?b' file ?表示匹配?前面字符 0次 或 1次 (本例中表示匹配0个或1个a)
egrep 'abc|123' file | 表示逻辑关系或“ (本例中表示匹配abc或123)
egrep '(11){2} file 表示整体匹配,即匹配1111
注:grep命令不识别 () [] {} + | 等符号 在使用中可以配合-E参数一同使用,或者直接使用 egrep命令

sed 替换 匹配

n满足条件 , p打印 ,d删除, s修改源文件,e同时执行多个表达式,r 开启识别 + | {} 等符号

sed -n /abc/p file 打印包含abc的行
sed -nr /a{2}/ file 打印包含aa的行
sed -n '1,$' p file 打印全文
sed -e '1,3'p -e '/abc/' file 打印1至3行与包含abc的行
sed -n '/abc/'Ip 不区分大小写匹配
sed '1,5'd file 删除第1至5行
sed -i '1,5'd file 删除原文第1至5行
sed 's/[A-Z]/\l&/g' file 大写字母转换为小写字母
sed 's/[a-z]/\u&/g' file 小写字母转换为大写字母
sed '1,5s/abc/123/g' file 将1至5行中的abc全部替换为123,若不加g,则只替换第一个
sed 's /([^:]+):(.*):([^:]+)/ \3:\2:\1/' /etc/passwd 将第一段与最后一段互换位置
sed -r 's/^/aaaa:&/g' file 在行首添加aaaa:
sed -r 's/&/bbbb:&/g' file 在行尾添加bbbb:

猜你喜欢

转载自blog.51cto.com/12948291/2333492