2024年11月Linux Shell文本处理命令汇总(6)

发布时间:

  ⑴•累加每一行的第一个字段:

  ⑵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}’