1. 程式人生 > >Linux Shell編程實戰---以逆序形式打印行

Linux Shell編程實戰---以逆序形式打印行

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編程實戰---以逆序形式打印行