码迷,mamicode.com
首页 > 系统相关 > 详细

Linux Shell编程实战---以逆序形式打印行

时间:2017-09-08 18:23:47      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:linux

以逆序形式打印行


使用awktac可以搞定。

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

原文地址:http://weixiaoxin.blog.51cto.com/13270051/1963689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!