有時我們會需要把一個文字檔內容的每一行順序反轉過來,例如:
第一行
第二行
最後一行
反轉順序後成為:
最後一行
第二行
第一行
這時可以用Vim(或Linux/MacOS的tail指令)簡單做到,順便學一下關於Vim的新知識。
用Vim
用Vim很簡單,以下指令就可以將整個Vim編輯區內容的每一行順序反過來:
:g/^/m0
這是甚麼意思呢?
g
代表針對全部範圍(global)的每一行、只要是符合後面regular expression條件的,就套用指定行動。/^/
就是用來比對的regular expression。因為是用^
,所以任何內容(包括空行)都能符合條件。(若是用/./
或//
,空行會比對不到,各位不妨試試看。)m0
就是指定的行動。其中m
是move(移動)指令,0
是該指令的參數,意思是把buffer內容移動到第0行,最後的效果就是每一行順序被反轉過來。
用tail指令
除了Vim之外,還可以用Linux或MacOS的tail
指令,加上-r
參數即可。例如以下指令可以反轉sample.txt
文字檔內容:
tail -r sample.txt
以上就是Vim(和tail)的冷知識。是不是很簡單呢?