「cat」コマンドを使うと、ファイルの内容を確認(表示)したり、ファイルを結合することができます。
「連結」という意味を表す「concatenate」から取った名前のコマンドですが、ファイルの結合だけでなく、ファイルの内容を簡単に確認する方法として よく使われています。
以下から Linuxコマンド「cat」の具体的な使い方とオプションを解説していきます。
「cat」コマンドの基本
「cat」は以下のようにファイル名を指定して使います。
cat ファイル名
ファイルの内容を確認(表示)する
実際にコマンドを使ってファイルの内容を確認(表示)してみましょう。
その前に、まずはファイルを作成していきます。
vi コマンドなどでファイルの作成・編集ができますが、Cloud9 を使っている場合はコマンドを使わなくてもエディタを使って簡単に作成できます。
「file1.txt」という名前のファイルを作成し、ファイルを開いて内容を
aaa bbb
に編集し、保存します。
このファイルの内容を確認してみましょう。コマンドは以下。
cat file1.txt
以下のようにファイルの内容が表示されました。
一番下の「bbb」の行の後ろが改行されていませんが、とくに気にしなくてOKです。
cat コマンドはファイルの内容をすべて表示するため、大きなファイルの閲覧には向いていません。
その場合は、less や head、tail コマンドを使うのがオススメです。
他のディレクトリ(フォルダ)にあるファイルの内容を確認(表示)する
確認(表示)するファイルはパスで指定することができます。
パスの詳しい解説はこちら。
例えば「directory1」という名前のディレクトリの中にある「file1.txt」という名前のファイルを確認(表示)する場合は、以下のコマンドになります。
cat directory1/file1.txt
ファイルの内容を結合して確認(表示)する
今度は複数のファイルの内容を結合して確認(表示)してみます。
その前に、新しく「file2.txt」という名前のファイルを作成し、ファイルを開いて内容を
ccc
に編集し、保存します。
では最初に作成した「file1.txt」と、ここで作成した「file2.txt」の内容を結合して確認してみましょう。コマンドは以下。
cat file1.txt file2.txt
以下のようにファイルの内容が結合されて表示されました。
それぞれのファイルの最後の行が次の行と並んで表示されてしまうので、「file1.txt」と「file2.txt」の最後の行に改行を入れてみましょう。
そうすると結果も以下のように変わります。
また、3つ以上のファイルを連結する場合も同じように半角スペースで区切って指定することができます。
cat file1.txt file2.txt file3.txt file4.txt file5.txt
連結した内容を別のファイルに出力する
リダイレクト(>
)を使うことで、cat コマンドで複数のファイルの内容を連結し、その結果を別のファイルに出力することができます。
「file1.txt」と「file2.txt」の内容を結合して、新しく「file3.txt」のファイルを作成してみます。コマンドは以下。
cat file1.txt file2.txt > file3.txt
これで新しく「file3.txt」が作成されているはずです。
以下のコマンドで このファイルを確認してみましょう。
cat file3.txt
以下のように連結された内容でファイルが作成されていることが確認できます。
ここまでが「cat」コマンドの基本!
「cat」コマンドの応用
「cat」コマンドの理解をさらに深めたい方は以下もご覧ください。
ファイルの内容から特定の文字列が含まれる行を抽出する
パイプ(|
)と grep コマンドを組み合わせることで、ファイルの内容から特定の文字列が含まれる行を抽出することができます。
まずは「file1.txt」という名前のファイルを作成し、ファイルを開いて内容を
aaa bbb ccc abc def ghi
に編集し、保存します。
このファイルの内容から、「a」という文字列が含まれる行だけを抽出して表示してみます。コマンドは以下。
cat file1.txt | grep a
以下のように「aaa」と「abc」の行が抽出できました。
grep コマンドの詳しい使い方はこちら。
-A(–show-all)オプション
-A
(--show-all
)オプションをつけると、すべての非表示文字を表示することができます。
オプションに -vET
をつけた場合と同じ動作です。
-b (–number-nonblank)オプション
-b
(--number-nonblank
)オプションをつけると、結果に行番号を表示することができます。
-n
(--number
)オプションも行番号を表示するオプションですが、こちらは空白行を飛ばして番号がつけられます。
空白行を飛ばして 行番号を付け加えた場合の表示例
-e オプション
-e
オプションをつけると、タブ以外の非表示文字を表示することができます。
オプションに -vE
をつけた場合と同じ動作です。
-E(–show-ends)オプション
-E
(--show-ends
)オプションをつけると、各行の後ろに「$」を表示することができます。
各行の後ろに「$」が付け加えられた表示例
-n(–number)オプション
-n
(--number
)オプションをつけると、結果に行番号を表示することができます。
行番号を付け加えた場合の表示例
-s(–squeeze-blank)オプション
-s
(--squeeze-blank
)オプションをつけると、連続した空白行を1行にまとめて表示することができます。
-t オプション
-t
オプションをつけると、タブを「^I」、用紙送りを「^L」に置き換えて表示することができます。
オプションに -vT
をつけた場合と同じ動作です。
-T(–show-tabs)オプション
-T
(--show-tabs
)オプションをつけると、タブを「^I」に置き換えて表示することができます。
-v(–show-nonprinting)オプション
-v
(--show-nonprinting
)オプションをつけると、改行とタブ以外の制御コードを制御文字に置き換えて表示することができます。
まとめ
以上、Linuxコマンド「cat」の使い方でした!
ここまでの内容をまとめておきます。
- 「cat」コマンドでファイルの内容を確認(表示)したり、ファイルを結合することができる。
- 対象のファイルはパスで指定できる。
- 複数のファイルを指定することで、内容を結合して表示することができる。
- リダイレクト(
>
)を使うことで、表示結果を別のファイルに出力することができる。