** 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: