9.6/9.7 awk(上下)
awk工具(更丰富功能,支持了分段)
head –n2 test.txt|awk –F ‘:’‘{print $1}’ 打印最后两行的第一段,-F ‘:’指定以:为分割符
head –n2 test.txt|awk –F ‘:’‘{print $0}’ 打印最后两行的全部, {print $0}全部打印,没有指定分隔符,默认以空格或空白字符为分隔符
awk –F ‘:’ ‘{print $1“#”$2“#”$3“#”$4}指定以#为分隔符显示1-4段,
awk ‘/oo/’ test.txt 包含oo的行打印出来(匹配)
awk –F ‘:’ ‘$1~/oo/’test.txt 只打印第一段包含oo的行
awk -F ‘:’ ‘/root/ {print $1,$3} /uesr/ {print $1,$3}’ test.txt 包含root的第1,3段打印,包含uesr的第1,3段。
awk –F ‘:’‘$3==“0”’ /etc/passwd 第三段等于0的
awk –F ‘:’ ‘$3>=“500”’ /etc/passwd 第三段大于等于500的(加上“”不针对数字)
awk -F ‘:’‘$3>=500’ /etc/passwd 第三段大于等于500的
awk –F ‘:’ ‘$7!=“/sbin/nologin”’ /etc/passwd第七段不等于/sbin/nologin的 !=不等于
awk –F ‘:’ ‘$3<$4’ /etc/passwd 第三段小于第四段的 (‘$3==$4’等于)
awk –F ‘:’ ‘$3>“5”&& $3<“7”’ /etc/passwd 第三段大于5小于7
awk –F ‘:’‘$3>1000||$7==“/bin/bash”’ /etc/passwd 第三段大于1000或者第七段/bin/bash(‘$7~ /bash/’第七段匹配/bash)
head -5 /etc/passwd |awk –F ‘:’ ‘{OFS=“#”}{print $1,$3,$4}’ 以#分隔显示最后5行第1,3,4段({OFS=“#”} 以#分隔)
awk –F ‘:’ ‘{OFS=“#”}{if($3>1000){print $1,$2,$3,$4}}’ /etc/passwd 第三段>1000时,用#分隔显示1,2,3,4段
head –n3 /etc/passwd |awk –F ‘:’{print NF}’NF表示段
head –n3 /etc/passwd |awk –F ‘:’{print NR}’打印最后第三行NR表示行 ‘{print $NR“:”$NF}’表示$1-n:$7)
awk ‘NR>40’ /etc/passwd 打印大于前40所有行
awk –F ‘:’ ‘NR<20 && $1 ~/roo/’ /etc/passwd 打印小于20行的并且$1包含roo的
head –n3 /etc/passwd |awk –F ‘:’ ‘$1=“root”’ 最后3行,第一段改成root,=赋值
awk –F ‘:’ ‘{(tot=tot+$3)};END {print tot}’ /etc/passwd 求第三段所有的和
awk –F ‘:’ ‘{if ($1==“root”){print $0}}’ /etc/passwd 打印$1=root的行