awk 命令
截取文档中的某段
#awk -F ‘:‘ {print$1} 1.txt 打印第一段
#awk -F ‘:‘ ‘OFS=‘#’ {print$1,$2,$3,$4} 1.txt 指定显示结果的分隔符为# , 也可以使用自定义字符连接每个段 {print$1"#"$2}
匹配字符或字符串
#awk ‘/root/‘ 1.txt
针对某个段匹配
#awk -F ’:‘ $1 ~/oo/‘ 1.txt
多次匹配
#awk -F ‘:‘ /root/ {print $1,$3};$1~/test/;$3~/20/‘ 1.txt
改变某个段的值
#awk -F ‘:‘ ‘$1="root‘" 1.txt
数字计算,把第三段和第四段值相加,并赋予第七段
#awk -F‘{OFS=":"} {$7=$3+$4;print$0}‘ 1.txt
计算第三段的总和
#awk -F ‘:‘ ‘{(tot=tot+$3)};END{print tot}‘ 1.txt
if关键词
#awk -F ‘:‘ ‘{if($1=="root")print$0}‘ 1.txt
内置变量NF段数,NR 行数’
打印20行以后的行
#awk ‘NR>20‘ 1.txt
打印20行以后并且第一段包含‘ssh’的行
#awk -F ‘:‘ ‘NR>20 && $1~ /ssh/‘ 1.txt
条件操作符<,>,==,!=,>=,<=
第三段为0
#awk -F ‘:‘ ’$3=="0"‘ 1.txt
第三段大于等于500
#awk -F ‘:‘ ’$3>=500‘ 1.txt
说明,等比较数字时,不能加双引号,如果写成$3>="500" 就不符合要求了
第7段不是‘/sbin/nologin‘
#awk -F ‘:‘ ‘$7!="/sbin/nologin"‘ 1.txt
第三段小于第四段
#awk -F ‘:‘ ‘$3<$4‘ 1.txt
第三段大于5,并且小于7
#awk -F ‘:‘ ‘$3>5 && $3<7‘ 1.txt
第三段大于5,或者第7段为 ‘/bin/bash‘
#awk -F ‘:‘ ‘$3>"5" || $7=="/bin/bash"‘ 1.txt
扩展
awk 中使用外部shell变量 http://www.aminglinux.com/bbs/thread-199-1-1.html
awk 合并一个文件 http://www.aminglinux.com/bbs/thread-493-1-1.html
把一个文件多行连接成一行 http://www.aminglinux.com/bbs/thread-266-1-1.html
awk中gsub函数的使用 http://www.aminglinux.com/bbs/thread-200-1-1.html
awk 截取指定多个域为一行 http://www.aminglinux.com/bbs/thread-224-1-1.html
过滤两个或多个关键词 http://www.aminglinux.com/bbs/thread-198-1-1.html
用awk生成以下结构文件 http://www.aminglinux.com/bbs/thread-5494-1-1.html
awk教程 http://www.cnblogs.com/emanlee/p/3327576.html
awk用print打印单引号 http://www.aminglinux.com/bbs/thread-1738-1-1.html
合并两个文件 http://www.aminglinux.com/bbs/thread-945-1-1.html