はじめに
恒例のお断りですが、この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。
やりたいこと
おはよう
こんにちは
さようなら
なファイルがあったら
さようなら
こんにちは
おはよう
というファイルを作りたい、ってことです。
答
tail -r
実例
$ cat file.txt
おはよう
こんにちは
さようなら
$ tail -r file.txt
さようなら
こんにちは
おはよう
はい、できました1。
おまけ
「テキストファイルの行の順序を逆にしたい」みたいな感じで検索すると"tac"というコマンドがあることが分かります2。が、tacはGNUのcoreutilsの中の一つなので、MacとかBSD系のOSではデフォルトでは入っていません34。こんなことは、たまたま思いついた時にさくっとやりたいわけで、いちいちインストール、というのはちょっと違うかなと思います。でも、この程度の機能であれば、絶対MacとかBSD系のOSにもあるはずで、それがtailの-rオプションです。
ちなみに、(行単位ではなく)単に「逆にしたい」で検索してしまうと"rev"というコマンドがあることがわかります。こちらはMacとかBSD系のOSにもデフォルトで入ってます。「なんだ、名前が違うけどあるよね」なんて思ってこちらを使うと、残念ながら期待とは違って行ごとに文字単位で逆にしてくれます。はい、証拠。
$ rev file.txt
うよはお
はちにんこ
らなうよさ
これはこれで正しく動作しているとは思いますが、こういう需要ってどれだけあるのでしょう。(さらに言うと、Macではバイト単位で逆にしてくれたようで文字化けしてしまいました56。)