我们将一个文件中的文本行以逆序形式打印出来
我们使用awk可以做到这件事,或者使用tac命令也可以做到相同的事情,这个命令来源于倒过来的cat
首先是tac,这个命令的语法如下
tac file1 file2….
或者从stdin的输出中读取
seq 5 | tac
当然, \n是默认的行的分隔符,可以使用-s 来指定自己的分割符
awk 的实现方式如下
seq 9 | \
awk ‘{ lifo[NR]=$0;lno=NR}
END{for(;lon>-1;lno–){print lifo[lno];}
}’
\将但行命令分解了多行
这个脚本中,我们将每一行都存入了关联数组,用行号作为数组索引,最后awk执行END语句块,为了得到最后一行的行号,在{ } 语句块中使用lno=NR,以倒序的方式依次打印出来