首页 > 代码库 > shell练习-awk命令

shell练习-awk命令

awk -F ‘:‘  ‘{print $3,$4}‘ 1.txt 

awk -F ‘:‘ ‘OFS=":" {print $3,$4}‘ 1.txt

awk ‘/root|user/‘ 1.txt  匹配root或者user

awk ‘/(oo)+/‘ 1.txt  一或多次oo

awk -F ‘:‘ ‘$1~/r*o/ {print $3}‘ 1.txt 第一段去匹配r*o的,并只打印第三段

awk -F ‘:‘ ‘$1~/root/ {print $1,$3}; $1~/user/ {print $1,$3}‘ 1.txt 分别匹配

awk -F ‘:‘ ‘$1~/root|nobody/ {print $1,$3}‘ 1.txt  或者

条件操作符

awk -F‘:‘ ‘$1=="root"{print $1}‘ 1.txt

awk -F‘:‘  ‘$1=="root" || $7~/nologin/‘ 1.txt 第一段是root或第7段是nologin的

可以用 !~ 表示不匹配 $7!~/nologin/ 第7段不匹配弄login的

awk 位置变量 NR行

awk -F‘:‘ ‘NR<10 {print $5,$1,$7}‘ 1.txt 打印前9行

awk -F‘:‘ ‘{if (NR==10) print $1,$3,$4}‘ 1.txt

awk -F‘:‘ ‘OFS="%" {if (NR==10) print $1,$2}‘ passwd  打印第十行的第一二两段

awk -F‘:‘ ‘{print NF}‘ 1.txt 打印每一行有几段

awk -F‘:‘ ‘OFS="##" {if (NF==7) print $1,$7}‘ passwd     打印是7段的每一行中的第一段和第七段

awk -F‘:‘ ‘{print $NR print $NF }‘ 1.txt

awk -F‘:‘ ‘OFS=":" {$7=$3+$4 print $0‘} 1.txt     $0本行

awk -F‘:‘ ‘{(sum=sum+$3)};END {print sum}‘ 1.txt  循环 (注意单引号的位置)

awk -F: ‘/^root:/{OFS="##";print $1,$3,$6;}‘ passwd


本文出自 “share,open source” 博客,请务必保留此出处http://liqilong2010.blog.51cto.com/3029053/1857120

shell练习-awk命令