CAT(1)

名称
cat - ファイルの連結、表示を行う

書式
cat [-benstuv] [file ...]

解説
cat はファイルを連続的に読み込み、標準出力に書き出します。 file が単一のダッシュ (‘-’) または存在しない場合、 cat は標準入力から読み込みます。 file が UNIX ドメインソケットの場合、 cat はこれに接続し、 EOF まで読み取りを行います。 これは、 inetd(8) で利用可能な UNIX ドメインのバインディング機能を補うものです。

オプションは以下のとおりです。

-b  非空白行に、1 から開始する番号を付けます。

-e  表示できない文字を目に見える形で表示し ( -v オプション参照)、各行の最後に (‘$’) を表示します。

-n  行番号を付け加えます。行番号は 1 から始まります。

-s  連続した空行を圧縮します。連続した空行は 1 行の空行 として出力されます。

-t  表示できない文字を目に見える形で表示し ( -v オプション参照)、タブを ‘^I’ で表示します。

-u  出力のバッファリングを行いません。

-v  表示できない文字を目に見える形で表示します。 control-X は ‘^X’ 、削除文字 (8進数で 0177) は ‘^?’ と表示されます。 ASCII 文字でないもの ( 最上位ビットが立っているもの ) は、 ‘M-’ (メタ) のあとに残りの7ビットで表されるキャラクタを 表示します。

診断

使用例
コマンド

    cat file1

は、 file1 の内容を標準出力へ表示します。

コマンド

    cat file1 file2 > file3

は、 file1 と file2 の内容を file3 へ順番に表示します。 file3 が既に存在する場合にはこれを切り詰めます。 リダイレクトについての更なる情報は、シェル (すなわち sh(1)) のマニュアルページを参照してください。

コマンド

    cat file1 - file2 - file3

は、 file1 の内容を表示し、標準入力から EOF (‘^D’) 文字を受け取るまでに受け取ったデータを表示し、 file2 の内容を表示し、再度標準入力から読取った内容を出力し、 最後に file3 の内容を出力します。 標準入力がファイルを参照している場合、 コマンドライン上の 2 番目のダッシュは効果がなくなることに注意してください。 最初の ‘-’ において、ファイルの内容全体が、 cat によって既に読み取られて表示されてしまったからです。

関連項目
head(1), more(1), pr(1), sh(1), tail(1), vis(1), zcat(1), setbuf(3) Rob Pike, UNIX Style, or cat -v Considered Harmful, USENIX Summer Conference Proceedings, 1983.

規格
cat ユーティリティは p1003.2-92 仕様に準拠しています。

フラグ [-benstv] はこの仕様に対する拡張です。

歴史
cat ユーティリティは AT&T UNIX から登場しました。 Dennis Ritchie がマニュアルの初版をデザインし、執筆しました。

バグ
シェルの出力リダイレクトのメカニズムが原因で、 “cat file1 file2 > file1” は file1 に最初に入っているデータを消去してしまいます!

cat ユーティリティは、 -t や -v オプションが有効な場合、マルチバイト文字を認識しません。