egrep grep -E
本质区别egrep不需要加脱意字符
‘r.t’ .表示任意一个字符特殊字符也满足 不能用?
‘r*t’ *表示0个或任意个前面的字符
‘r.*t’ rt中间0到任意个字符,相当于匹配*个. 空行也包含在内 贪婪匹配
‘r+o’ + 表示一个或多个前面的字符 grep可以使用脱意字符使用\+
‘参数1|参数2’ 参数1或者参数2
egrep ‘r{3}’ {} egrep 不需要加脱意字符 匹配3个r的行
egrep ‘r(oo){3}’ ()是把括号内容看成一个单元
sed
‘p‘ 匹配打印
‘d’ 删除
-i 直接更改
sed ‘s/要替换/替换成什么/g’ 文件名 g是全局的意思
root:x:::root:/root:/bin/bash 把第一个冒号前的和最后一个冒号后的替换
心得:可以先写命令 最后再加转义字符不然容易混乱
要替换的内容有/的时候也可以用#替代/
# head passwd | sed's/\(^[^:]*\)\(:.*:\)\([^:]*$\)/\3\2\1/'
awk
-F ‘:’ 指定分隔符。如果不加-F则以空格或者tab来作为默认分隔符
print 打印某个字段
print的动作要用{ }括起来。打印自定义内容时需要把自定义内容用双引号括起来
$1为第一个字段 $2为第二个字段 $0表示整行
awk可以用逻辑符号进行判断。
==表示等于
!=表示不匹配
另外还有>,>=,<,<=
&& 表示并且
|| 表示或者
awk内置变量
NF 表示用分隔符分割后一共有多少段,列号
NR 表示行号