首页 > 代码库 > 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使用解析