我们将一个文件中的文本行以逆序形式打印出来

我们使用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,以倒序的方式依次打印出来

发表评论

邮箱地址不会被公开。 必填项已用*标注