⑴•累加每一行的第一个字段:
⑵echo -e ”
⑶“ | awk ‘BEGIN{num = ;
⑷print ”begin“;} {sum += $;} END {print ”==“; print sum }’
⑸echo | awk ‘{print vara}’ vara=$var # 输入来自stdin
⑹awk ‘{print vara}’ vara=$var file # 输入来自文件
⑺用样式对awk处理的行进行过滤
⑻awk ‘NR 《 ′ #行号小于
⑼awk ‘NR==,NR== {print}’ file #行号等于和的打印出来
⑽awk ‘/linux/’ #包含linux文本的行(可以用正则表达式来指定,超级强大
⑾awk ‘!/linux/’ #不包含linux文本的行
⑿使用-F来设置定界符(默认为空格
⒀awk -F: ‘{print $NF}’ /etc/passwd
⒁使用getline,将外部shell命令的输出读入到变量cmdout中;
⒂echo | awk ‘{”grep root /etc/passwd“ | getline cmdout; print cmdout }’
⒃在awk中使用循环
⒄for(i=;i《;i++{print $i;}
⒅for(i in array{print array[i];}
⒆以逆序的形式打印行:(tac命令的实现
⒇awk ‘{lifo[NR] = $; lno=NR}
⒈END{ for(;lno》-;lno--{print lifo[lno];}
⒉} ’
⒊awk实现head、tail命令
⒋•head:
⒌awk ‘NR《={print}’ filename
⒍•tail:
⒎awk ‘{buffer[NR%] = $;} END{for(i=;i《;i++{
⒏print buffer[i %]} } ’ filename
⒐•awk方式实现:
⒑ls -lrt | awk ‘{print $}’
⒒•cut方式实现
⒓ls -lrt | cut -f
⒔打印指定文本区域
⒕•确定行号
⒖seq | awk ‘NR==,NR=={print}’