- 目次 -
catコマンドとは
説明が不要かもですが、そもそもcatコマンドは
ファイルを連結または表示します
というコマンドです。
ファイルを参照したり連携させたりするのに使います。
以降では下のsample.txtを例にします。(3、4行目は空行、5行目の頭にタブが入っている)
■sample.txt
1行目です。2行目です。
5行目です。
基本的な使い方
cat ファイル名
ファイルの内容を標準出力(ターミナル)に表示します。
出力例:
$ cat sample.txt1行目です。2行目です。
5行目です。
cat コマンドのオプション
| コマンド | 説明 |
|---|---|
| cat -n | 行番号を付けて表示 |
| cat -b | テキスト行のみに行番号を表示 |
| cat -s | 連続した空行を1行にまとめて |
| cat -T | タブを^I(i)で表示する |
| cat -v | 制御文字を可視化 |
| cat -E | 行末の改行を $ で表示 |
| cat -A | -vTEと同様 |
行番号を表示する:-n
各行の先頭に行番号を付けて表示します。
cat -n ファイル名
出力例:
$ cat -n sample.txt
11行目です。2 2行目です。
3
4
55行目です。
空行を除いて行番号を表示する:-b
空白行には番号を付けず、テキスト行のみに行番号を表示します。
cat -b ファイル名
出力例:
$ cat -b sample.txt
11行目です。2 2行目です。
35行目です。
連続した空行を1行にまとめる:-s
連続した空行を1行にまとめて表示します。
cat -s ファイル名
出力例:3,4行目がまとめて1行の空行になります
$ cat -s sample.txt1行目です。2行目です。
5行目です。
タブを可視化する -T
タブを ^I で表示します。
cat -T ファイル名
出力例:
$ cat -T sample.txt1行目です。2行目です。^I5行目です。
改行や特殊文字を可視化する:-v, -E
-v:制御文字を可視化(例:^Mなど。^Mについては後述)-E:行末の改行を$で表示
cat -vE ファイル名
出力例:
$ cat -vE sample.txt1行目です。$2行目です。$
$
$
5行目です。$
改行や特殊文字、タブを可視化する:-A
-v、-V、-Tを指定したものと同等で、制御構文、改行、タブを可視化します。
cat -A ファイル名
出力例:
$ cat -vE sample.txt1行目です。$2行目です。$
$
$
^I5行目です。$
参照以外の使い方
ファイルの結合
file1.txt と file2.txt を結合し、新しい merged.txt を作成します。
splitコマンドで分割したファイルもこれで結合できます。
(splitコマンドについては後日まとめてみます)
$ cat file1.txt file2.txt > merged.txt
テキストの追加(リダイレクト)
newfile.txt を作成し、EOF を入力するまでに入力したテキストを書き込みます。
$ cat <<EOF > newfile.txt
次の行> これは新しいファイルです。
EOF
$ cat newfile.txtこれは新しいファイルです。
既存ファイルに追記
additional.txt の内容を に追加します。sample.txt
sample.txt の後ろにadditional.txtの内容が追記されます。
$ cat additional.txt >> sample.txt
cat と tac(逆順表示)
通常 cat はファイルを上から表示しますが、tac を使うと逆順に表示できます。
$ tac sample.txt
出力例:
$ cat sample.txt
5行目です。2行目です。1行目です。
^M ってなんだ?
^M は、制御文字(Control Character)の一種で、キャリッジリターン(Carriage Return, CR) を意味します。ざっくりと改行コードです。
主に Windows と UNIX/Linux の改行コードの違い によって発生します。
Windows では CRLF (\r\n) が改行として使われますが、UNIX 系の環境では LF (\n) のみを使用します。そのため、Windows で作成したファイルを Linux で開くと、不要な CR (\r) が残り、それが ^M として表示されます。
| OS | 改行コード |
|---|---|
| Linux / macOS | LF (\n) |
| Windows | CRLF (\r\n) |
確認する方法として、cat -v などでファイル内にある CR を ^M として表示することがあります。



コメント