8-21上课笔记
sed与awk相关操作补充
1, 在行尾加上aaa
head /etc/passwd |sed -r 's/(.*)/&:aaa/'
2,插入行,例如在第二行中插入行
sed -r '1,2s/(.*)/111&/' 1.txt
主要掌握sed –i,加上-i参数之后会修改源文件,特别注意
awk
awk -F ':' 'BEGIN{语句} {if(条件){语句1;语句2;语句3} } END{语句}' filename
$NF代表最后一段
NR第一行打印第一列 第二行打印第二列
替换特殊符号
awk -F ':|#|,' '{print $1,$2,$3,$4,$5}' 2.txt
可以用符号多个分隔符进行分割
以#号分割
或者使用OFS也行
用awk过滤oo字符
可以同时满足lp的
过滤第一段,第三行和第四行相等的
过滤出不允许登录的用户名
awk -F ':' '$7=="/sbin/nologin" {print $1}' passwd
过滤第三段小于1000的
awk -F ':' '$3<1000' passwd
$7="/bin/bash" {print $1,$2,$3}' /etc/passwd,OFS是连接符
NR ,打印前面5行
awk -F ':' 'NR<6 {print $0}' passwd
过滤:号,并且以root开头的行