8-21上课笔记

sed与awk相关操作补充

1, 在行尾加上aaa

head /etc/passwd |sed -r 's/(.*)/&:aaa/'

8-21上课笔记

 

 

2,插入行,例如在第二行中插入行

sed -r '1,2s/(.*)/111&/' 1.txt

8-21上课笔记

8-21上课笔记

8-21上课笔记

主要掌握sed –i,加上-i参数之后会修改源文件,特别注意

awk

awk -F ':' 'BEGIN{语句} {if(条件){语句1;语句2;语句3} } END{语句}' filename

8-21上课笔记

$NF代表最后一段

8-21上课笔记

8-21上课笔记

NR第一行打印第一列 第二行打印第二列

8-21上课笔记

 

替换特殊符号

awk -F ':|#|,' '{print $1,$2,$3,$4,$5}' 2.txt

8-21上课笔记

 

 

可以用符号多个分隔符进行分割

以#号分割

8-21上课笔记

 

或者使用OFS也行

8-21上课笔记

 

用awk过滤oo字符

8-21上课笔记

可以同时满足lp的

8-21上课笔记

 

过滤第一段,第三行和第四行相等的

8-21上课笔记

 

过滤出不允许登录的用户名

awk -F ':' '$7=="/sbin/nologin" {print $1}' passwd

8-21上课笔记

 

 

过滤第三段小于1000

awk -F ':' '$3<1000' passwd

8-21上课笔记

$7="/bin/bash" {print $1,$2,$3}' /etc/passwdOFS是连接符

8-21上课笔记

 

NR ,打印前面5行

awk -F ':' 'NR<6 {print $0}' passwd

8-21上课笔记

 

过滤:号,并且以root开头的行

8-21上课笔记