系统之家 - 系统光盘下载网站!

当前位置:系统之家 > 系统教程 > Linux Shell文本处理命令

Linux Shell文本处理命令汇总(6)

时间:2014-12-31 15:50:39 作者:qipeng 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20141231/33843.html 手机查看 评论

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

  代码如下:

  echo -e ”1\n 2\n 3\n 4\n“ | awk ‘BEGIN{num = 0 ;

  print ”begin“;} {sum += $1;} END {print ”==“; print sum }’

  传递外部变量

  代码如下:

  var=1000

  echo | awk ‘{print vara}’ vara=$var # 输入来自stdin

  awk ‘{print vara}’ vara=$var file # 输入来自文件

  用样式对awk处理的行进行过滤

  awk ‘NR 《 5′ #行号小于5

  awk ‘NR==1,NR==4 {print}’ file #行号等于1和4的打印出来

  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=0;i《10;i++){print $i;}

  for(i in array){print array[i];}

  eg:

  以逆序的形式打印行:(tac命令的实现)

  代码如下:

  seq 9| \

  awk ‘{lifo[NR] = $0; lno=NR} \

  END{ for(;lno》-1;lno--){print lifo[lno];}

  } ’

  awk实现head、tail命令

  •head:

  代码如下:

  awk ‘NR《=10{print}’ filename

  •tail:

  代码如下:

  awk ‘{buffer[NR%10] = $0;} END{for(i=0;i《11;i++){ \

  print buffer[i %10]} } ’ filename

  打印指定列

  •awk方式实现:

  代码如下:

  ls -lrt | awk ‘{print $6}’

  •cut方式实现

  代码如下:

  ls -lrt | cut -f6

  打印指定文本区域

  •确定行号

  代码如下:

  seq 100| awk ‘NR==4,NR==6{print}’

发表评论

0

没有更多评论了

评论就这些咯,让大家也知道你的独特见解

立即评论

以上留言仅代表用户个人观点,不代表系统之家立场

其他版本软件

热门教程

人气教程排行

Linux系统推荐

扫码关注
扫码关注

扫码关注 官方交流群 软件收录