Linux Shell编程实战---以逆序形式打印行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Shell编程实战---以逆序形式打印行相关的知识,希望对你有一定的参考价值。
以逆序形式打印行
使用awk或tac可以搞定。
tac这个命令的名称其实就是反过来书写的cat。
(1)、使用tac
该命令的语法如下:
tac file1file2 …
它也可以从stdin中读取:
$ seq 5 |tac
5
4
3
2
1
在tac中,\n是默认的行分隔符。但我们也可以用 -s "分隔符"选项指定自己的分隔符。
(2)、使用awk
使用awk的实现方式如下:
$ seq 9 |\
awk ‘{lifo[NR]=$0 }
END{for(lno=NR;lno>-1;lno--){ print lifo[lno]; }
}‘
在shell脚本中,\ 可以很方便地将单行命令拆解成多行。
这个awk脚本非常简单。我们将每一行都存入一个关联数组中,用行号作为数组索引(行号由NR给出),最后由awk执行END语句块。为了得到最后一行的行号,在{ }语句块中使用lno=NR。因此,这个脚本从最后一行一直迭代到第0行,将存储在数组中的各行以逆序方式打印出来。
本文出自 “微小信的运维之道” 博客,请务必保留此出处http://weixiaoxin.blog.51cto.com/13270051/1963689
以上是关于Linux Shell编程实战---以逆序形式打印行的主要内容,如果未能解决你的问题,请参考以下文章
《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试