Movatterモバイル変換


[0]ホーム

URL:


hydroculのメモ >コマンドの使い方(Linux) >tac コマンド

tac コマンド2015/04/03

catの反対。入力の行で逆順にして出力する。つまり一番下の行が一番上に来る。

以下のようなfoo.txt というファイルがあったら、

abcdefghi

以下のようにコマンドを打つと、

$ tac foo.txt

以下のように出力される。

ghidefabc

以下のように他のコマンドとパイプでつないでもよい。

$ cat foo.txt | tac

行の順番は変えずに行の中の文字を逆順にするrev というコマンドもある。

$ ( echo しんぶんし; echo たけやぶ焼けた) | catしんぶんしたけやぶ焼けた$ ( echo しんぶんし; echo たけやぶ焼けた) | revしんぶんしたけ焼ぶやけた$ ( echo しんぶんし; echo たけやぶ焼けた) | tacたけやぶ焼けたしんぶんし

この例わかりづらいじゃないか。

インストール2016/03/17

Coreutilsというパッケージに入っているので、CentOSにもUbuntuにも始めから入っている。

オプション2017/02/18

--help
ヘルプ表示
-r
-s で指定する区切り文字を正規表現で解釈する
-s <STRING>
改行ではなく、指定の文字を区切り文字にする
--version
バージョン表示

-- というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、- で始まるファイル名を扱いたい場合に使うとよい。

移植性2015/11/04

tac はCentOSやUbuntuなど(GNU coreutils)にはあるが、MacなどのBSD系にはないらしい。BSD系では、tac の代わりにtail -r を使う。しかしtail -r は逆にGNU coreutilsでは対応していない。

参考

HOWTO

単語を逆順に並べるには2016/02/28

-s というオプションで区切り文字を指定できるので、行ではなく単語を逆順に並べることもできる。

$ echo -n "I'm feeling lucky." | tac -s ' 'lucky.feeling I'm

さらに-r というオプションを使えば正規表現で区切り文字を指定できる。

$ echo -n "I'm feeling lucky." | tac -r -s '[^a-zA-Z]'lucky.feeling m I'
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク

[8]ページ先頭

©2009-2025 Movatter.jp