言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Bash辞典
  3. cat / tac

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

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