測試文本內容如下:
# 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}}'