如何使用sed或awk处理文件最后一行-创新互联

这篇文章主要为大家展示了“如何使用sed或awk处理文件最后一行”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用sed或awk处理文件最后一行”这篇文章吧。

创新互联服务项目包括永靖网站建设、永靖网站制作、永靖网页制作以及永靖网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,永靖网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到永靖省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

有如下的文本:
abcd 1234 fds
2011 550
1023 832er 1231

要求处理后如下所示:
abcd 1234 fds
2011 550
total1:1023 total2:832er 12end

判断如果是文本最后一行则在第一列前面加total1:,第二列加total2:, 第三列后面减掉后面两个字符并加end。

分别用sed与awk来实现。
sed:


代码如下:


echo 'abcd 1234 fds
2011 550
1023 832er 1231' |sed -r '$s/([^ ]*)( )([^ ]*)( )(..).*$/total1:\1\2total:\3\4\5end/'



abcd 1234 fds
2011 550
total1:1023 total:832er 12end

awk:


代码如下:


awk 'NR>1{print a}{a=$0}END{$1="total1:"$1;$2="total2:"$2;print gensub(/..$/,"end",$0)}' file
awk 'BEGIN{getline a}{print a;a=$0}END{$1="total1:"$1;$2="total2:"$2;$3=gensub(/..$/,"end",1,$3);print}'
awk '{if(!getline line){print "total1:"$1" total2:"$2" "gensub(/..$/,"end",1,$3)}else{print line?$0 RS line:$0}}'


以上是“如何使用sed或awk处理文件最后一行”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享标题:如何使用sed或awk处理文件最后一行-创新互联
分享URL:http://hbruida.cn/article/dcssoo.html