首页 > 代码库 > AWK使用解析
AWK使用解析
Cut命令的局限
df -h | cut -d “ ” -f 5 /etc/passwd
cut命令无法正确截取以空格为分隔符的内容
AWK格式
awk ‘条件1{动作1} 条件2{动作2}…’ filename
条件(Pattern)[一般使用关系表达式作为条件]:
x>10 判断变量 x是否大于10
x>=10 大于等于
x<=10 小于等于
动作(Action):
格式化输出:printf,print[会自动添加\n]
流程控制语句:if/for
截取/分区使用的百分比
df -h | grep sda2 | awk ‘{print $5}‘ | cut -d% -f1
BEGIN
awk ‘BEGIN{printf "This is a test Script\n"}{print $2 "\t" $5}‘ student.txt #最先执行BEGIN后跟的命令
awk ‘BEGIN{FS=":"} {print $1 "\t" $3}‘ /etc/passwd #显示指定分隔符
awk -F: ‘{print $1 "\t" $3}‘ /etc/passwd #同前
END
cat /etc/passwd | grep /bin/bash | awk -F: ‘END{print "The End..."}{print $1 "\t" $3}‘ #在命令结束之前打印END跟随的内容
关系运算符
cat student.txt | grep -v NAME | awk ‘$3>=80 {print $2}‘
awk ‘$3>=80 {print $2}‘ student.txt | grep -v NAME #可能会报错
AWK使用解析