Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

cat / tac

『cat』はファイルの内容を標準出力に表示するコマンドです。複数ファイルを連結(concatenate)する用途が名前の由来です。『tac』は逆に末尾の行から先頭に向けて逆順表示します。

構文
cat [オプション] [ファイル...]
tac [オプション] [ファイル...]
オプション一覧
コマンド / オプション概要
cat ファイルファイルの内容をそのまま表示します。
cat ファイル1 ファイル2複数ファイルを連結して表示します。
cat -n ファイル行番号を付けて表示します。
cat -b ファイル空行を除く各行に行番号を付けます。
cat -A ファイルタブを『^I』、行末を『$』として表示します。不可視文字の確認に使います。
cat -s ファイル連続する空行を1行にまとめて表示します。
cat > ファイル標準入力からの内容をファイルに書き込みます(Ctrl+Dで終了)。
cat >> ファイル標準入力の内容をファイルに追記します。
tac ファイルファイルの行を逆順(最終行→先頭行)に表示します。
サンプルコード

以下のファイルを例に説明します。

# ~/project/script.sh
# #!/bin/bash
#
# echo "Hello, World!"

# ~/project/numbers.txt
# apple
# banana
# cherry

ファイルの内容を表示します。

cat script.sh
#!/bin/bash

echo "Hello, World!"

行番号付きで表示します。空行にも番号が付きます。

cat -n script.sh
     1	#!/bin/bash
     2
     3	echo "Hello, World!"

不可視文字を確認します。Windows の改行コード(『\r』)が混入していると『^M』が表示されます。

cat -A script.sh
#!/bin/bash$
$
echo "Hello, World!"$

複数ファイルを連結して1つのファイルに書き出します。

cat header.txt body.txt footer.txt > output.txt

ヒアドキュメントで複数行を一度にファイルに書き込みます。

cat > config.txt <<'EOF'
host=localhost
port=8080
debug=true
EOF

『tac』でファイルを逆順に表示します。

tac numbers.txt
cherry
banana
apple

ログファイルの最新行を先頭にして表示する使い方もよく見られます。

tac /var/log/app.log | head -20
概要

大きなファイルを『cat』で表示するとターミナルが流れてしまいます。スクロールして読みたい場合は『less』を使います。先頭や末尾だけを確認したい場合は『head / tail』が便利です。

『cat』はリダイレクトやパイプと組み合わせてよく使います。リダイレクトについては『リダイレクト(>)』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。