shell技巧之以逆序形式打印行

测试文本内容如下:

# cat textfile
hadoop hdfs yarn spark zookeeper
mapreduce hive hbase scala kafka
CHAVIN mysql PostgreSQL mongodb
192.168.100.231 192.168.100.232
192.168.10.23
CHAVIN mysql linux hadoop spark hive
mysql CHAVIN hadoop linux spark hbase
mysql mysql mysql mysql mysql mysql

 

现在以逆序形式显示上面文本:

# tac textfile
mysql mysql mysql mysql mysql mysql
mysql CHAVIN hadoop linux spark hbase
CHAVIN mysql linux hadoop spark hive
192.168.10.23
192.168.100.231 192.168.100.232
CHAVIN mysql PostgreSQL mongodb
mapreduce hive hbase scala kafka
hadoop hdfs yarn spark zookeeper

 

总结:这里使用tac逆序打印行,细心的人能注意到:tac就是反过来的cat命令。tac默认的行分界符是\n,我们可以通过参数-s “分解符”指定行分界符。

 

这个功能也可以通过awk实现:

# awk '{ lifo[NR]=$0 }END{ for(lno=NR;lno>0;lno--){print lifo[lno]}}' textfile

 

如果将行逆序,同时将行字段逆序方法如下:

#awk '{ lifo[NR]=$0 }END{ for(lno=NR;lno>0;lno--){print lifo[lno]}}' textfile | awk '{ for(i=NF;i>0;i--){if(i==1){print $i}else{printf $i","}fi}}'

posted @   ChavinKing  阅读(1938)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示