正则表达式通常被用来检索、替换文本,方法有‘grep’---检索 sed---对行的处理 awk---对列的处理
一、grep
-c 行数
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录
例:1、grep -n 'root' /etc/passwd-----显示所有含有root的行
2、grep -v '^#' /etc/inittab------显示所有不是#开头的行
二、sed ---对行的处理
1、sed -n '1,$'p test.txt ---打印一到最后一行的内容
2、sed '1,3'd test.txt ---打印除去1,3行的内容
3、sed '1,2s/ot/to/g' test.txt ---打印1,2行,把ot改为to
4、sed 's#ot#to#g' test.txt --- 打印所有行,把ot改为to
5、sed -i 's/ot/to/g' test.txt ---把文件里所有行的ot改为to,保存并打印出来
三、awk ---对列的处理
head -n2 test.txt|awk -F ':' '{print $1}' ---把前两行,以:为分隔符的第一列打印出来
awk -F ':' '/root/ {print $1,$3} /test/ {print $1,$3}' test.txt ---输出含有root 或test的第一和第三列
awk -F ':' '{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}' /etc/passwd ---将第三列大于1000的行的输出分隔符改为#,输出他们的1234列