rev コマンド
すべての行の文字の順序を逆にする
次の例に示すように、すべての行で文字の順序を逆にします。
tac
コマンドはファイルの各行を上下反転しますが、
rev
コマンドは行の各文字の前後を反転します。
普通にcat
します。
$ cat thegeekstuff.txt
1. Linux Sysadmin, Scripting etc.,
2. Databases Oracle, mySQL etc.,
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10. Windows Sysadmin, reboot etc.,
11. Adding 1's and 0's
rev
コマンドを実行した結果
$ rev thegeekstuff.txt
,.cte gnitpircS ,nimdasyS xuniL .1
,.cte LQSym ,elcarO sesabataD .2
erawdraH .3
)cte ytiruceS enilnO ,krowteN ,llaweriF( ytiruceS .4
egarotS .5
setisbew dna stegdag looC .6
)elbaliava emit hcum ton ,erolpxe ot seigolonhcet ynam ooT( ytivitcudorP .7
ngiseD etisbeW .8
tnempoleveD erawtfoS .9
,.cte toober ,nimdasyS swodniW .01
s'0 dna s'1 gniddA .11
「rev」は「cat」と同じく先頭行から順番に表示しますが、表示する文字の並びが行の末尾から逆に並び替えて表示を行います。
- ヒント
- 「rev」は「reverse」の略です。
find の出力結果を拡張子でソート
「rev」コマンドの活用場面を思い浮かべることはできませんでしたが、下記の様にすることで findで検索した結果のファイルを拡張子単位でソートをすることができます。
$ find . -type f | rev | sort | rev
実行結果
./file1.c
./dir/file2.c
./dir2file3.c
./header1.h
./header2.h
./dir2/header3.h
./text1.txt
./text2.txt
./dir/text3.txr
ドメイン名リストのソート
www1・www2 などのサブドメインではなく、example.com や example.net などのドメインでソートしたいとする。
その場合、rev
コマンドで逆順にし、ソートし、再度 rev
コマンドで戻すとよい。
ドメイン名リスト
www1.example.com
www-a.example-b.com
www1.example.net
www-b.example-b.com
www2.example.com
www2.example.net
実行結果
$ cat foo.txt | rev | sort | rev
www-a.example-b.com
www-b.example-b.com
www1.example.com
www2.example.com
www1.example.net
www2.example.net