おれさまラボ

実際に手を動かして理解を深めるブログ。

cat,tac,revコマンドの使い方

シェルスクリプトを書いてみる

catコマンドとは

cat(キャット、カット)コマンドは、ファイルまたは標準入力の内容を連結して標準出力に出力するコマンドのこと。catは連結を意味する"catenate"の略。

tacコマンドとは

tac(タック)コマンドは、行を逆順に出力するコマンド。catをひっくり返してtac、覚えやすいです。

revコマンドとは

rev(レヴ)コマンドは、行内をひっくり返して出力するコマンド。

基本的な使い方

catの後にファイル名をつけて使います。

cat [ファイル1] ([ファイル2] [ファイル3] ...)

例えば、basho.txtファイルの中身を表示したい場合は以下のように記述。

$ cat basho.txt
古池や
蛙飛び込む
水の音

例えば、basho.txtとshiki.txtを連結して標準出力したければ以下のように記述。

$ cat basho.txt shiki.txt
古池や
蛙飛び込む
水の音
赤とんぼ
筑波に雲も
なかりけり

-nオプションを付けるとすべての行に行番号がつきます。

$ cat -n dakotsu.txt
     1  くろがねの
     2
     3  秋の風鈴
     4
     5  鳴りにけり

-bオプションを付けると空行以外に行番号がつきます。

$ cat -b dakotsu.txt
     1  くろがねの

     2  秋の風鈴

     3  鳴りにけり

tacコマンドを使うと逆順に表示されます。

$ tac basho.txt
水の音
蛙飛び込む
古池や

tacはパイプで連結してもOK。

$ cat -b  basho.txt | tac
     3  水の音
     2  蛙飛び込む
     1  古池や

revコマンドで行内の文字を逆順に出力できる。

cat basho.txt | rev
や池古
む込び飛蛙
音の水

cat,tac,revを全て使用するとbasho.txtが以下のようになります。

$ cat basho.txt | tac | rev
音の水
む込び飛蛙
や池古

ヘルプ

cat

$ cat --help
使用法: cat [オプション]... [ファイル]...
ファイル、または標準入力を連結し、標準出力に出力します。

  -A, --show-all           -vETと同じ
  -b, --number-nonblank    空行を除いて行番号を付け加える。-n より優先される
  -e                       -vEと同じ
  -E, --show-ends          行の最後に $ を付け加える
  -n, --number             全ての行に行番号を付け加える
  -s, --squeeze-blank      連続した空行の出力を抑止する
  -t                       -vTと同じ
  -T, --show-tabs          TAB文字を`^I'で表示
  -u                       (無視)
  -v, --show-nonprinting   非表示文字と`^'や`^'を付けて表示 (LFDとTABは除く)
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

ファイルの指定がなかったり, - であった場合, 標準入力から読み込みます.

例:
  cat f - g  最初に f の中身を出力し、次に標準入力を出力します。
            そして g の中身を出力します。
  cat        標準入力を標準出力に複製します。

cat のバグを発見した場合は bug-coreutils@gnu.org に報告してください。
GNU coreutils のホームページ: <http://www.gnu.org/software/coreutils/>
GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>
cat の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
完全な文書を参照する場合は info coreutils 'cat invocation' を実行してください。

tac

$ tac --help
使用法: tac [オプション]... [ファイル]...
Write each FILE to standard output, last line first.
With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -b, --before             区切り文字列をレコード後ろではなく前に付加する
  -r, --regex              区切り文字列を正規表現として解釈する
  -s, --separator=STRING   改行文字の代わりに STRING を区切り文字列にする
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

tac のバグを発見した場合は bug-coreutils@gnu.org に報告してください。
GNU coreutils のホームページ: <http://www.gnu.org/software/coreutils/>
GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>
tac の翻訳に関するバグは <http://translationproject.org/team/ja.html> に連絡してください。
完全な文書を参照する場合は info coreutils 'tac invocation' を実行してください。

rev

$ rev --help
Usage: rev [options] [file ...]

Options:
 -V, --version   output version information and exit
 -h, --help      display this help and exit

For more information see rev(1).