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』はリダイレクトやパイプと組み合わせてよく使います。リダイレクトについては『リダイレクト(>)』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。