Linuxコマンドcatの使い方と5つのオプション

Linuxコマンドcatは、ファイルの内容を画面に表示したり、複数のファイルを結合して1つのファイルにする際に使用されます。今回の投稿では、catコマンドの基本的な使い方と様々なオプションについて説明し、実務で役立つヒントや注意点も合わせてご紹介します。

catコマンドとは?

catは”concatenate”の略で、本来の意味は「連結する」です。Linuxでは、catコマンドはファイルの内容を連結して表示したり、ファイルを結合する際に使用されます。最も簡単な用途は、ファイルの内容を確認することです。これはcatコマンドの基本的な機能であり、ファイルの内容をそのまま表示します。

cat ファイル名
ShellScript

このコマンドは、指定したファイル名の内容をターミナル画面に表示します。この際、表示される内容はファイルの全てを含み、ページ分けなしで一度に表示されます。

図1. Linuxコマンドcat: 実行結果
図1. Linuxコマンドcat: 実行結果

catコマンドの主要オプション

catコマンドは基本機能に加え、様々なオプションを提供しており、ユーザーのニーズに応じてより柔軟に使用できます。主要なオプションを1つずつ見ていきましょう。

-nオプション: 行番号を表示する

-nオプションは、ファイルの各行の前に行番号を付けて表示します。コードやログファイルを確認する際に、行番号があると特定の部分を参照するのに非常に便利です。

cat -n ファイル名
ShellScript

このコマンドを使用すると、以下の図のように各行の前に該当する行番号が表示された状態でファイルの内容が出力されます。

図2. Linuxコマンドcat: -nオプションで行番号を表示
図2. Linuxコマンドcat: -nオプションで行番号を表示

-bオプション: 空行を除いて行番号を表示する

-nオプションに似ていますが、-bオプションは空行を除いた行にのみ番号を付けます。空行は番号が付かないため、空白が多いファイルを扱う際に便利です。

cat -b ファイル名
ShellScript

このコマンドを使用すると、以下の図のように空行には番号が付かず、内容がある行にのみ番号が付けられて出力されます。

図3. Linuxコマンドcat: -bオプションで空行を除いて行番号を表示
図3. Linuxコマンドcat: -bオプションで空行を除いて行番号を表示

-Eオプション: 各行の末尾にドル記号($)を表示する

-Eオプションは、各行の末尾にドル記号($)を付けて表示します。行の終わりを明確に区別したい場合に使用します。例えば、空白行やタブが含まれた行を明確に区別したい場合に便利です。

cat -E ファイル名
ShellScript

このコマンドを実行すると、行末がドル記号($)で表示され、行の終わりを確認できます。3行目の場合、行末に空白があることが容易に確認できます。

図4. Linuxコマンドcat: -Eオプションで行末にドル記号($)を表示
図4. Linuxコマンドcat: -Eオプションで行末にドル記号($)を表示

-sオプション: 連続した空行を1行に縮小する

ファイルに連続して空行が多く含まれている場合、-sオプションを使用して連続した空行を1行に縮小できます。これにより、ファイルの可読性が向上します。

cat -s ファイル名
ShellScript

このコマンドを使用すると、連続した空行が1つにまとめられて表示されます。以下の図では、-nオプションのみを使用した場合、4行目と5行目が空白であることがわかります。sオプションを併用すると、空白の2行が1行に縮まったことが確認できます。

図5. Linuxコマンドcat: -sオプションで複数の空行を1行に表示
図5. Linuxコマンドcat: -sオプションで複数の空行を1行に表示

-Tオプション: タブ文字を^Iで表示する

タブ文字(Tab)は画面上で見えないため、ファイル内のインデントやタブ区切りが明確でないことがあります。-Tオプションを使用すると、タブ文字が^Iで表示され、ファイル内のタブ文字を視覚的に確認できます。

cat -T ファイル名
ShellScript

このコマンドを使用すると、以下の図のようにファイル内のタブ文字が^Iで表示されます。

図6. Linuxコマンドcat: -Tオプションでタブ文字を^Iで表示
図6. Linuxコマンドcat: -Tオプションでタブ文字を^Iで表示

catコマンドの活用例

catコマンドは、単にファイルの内容を表示するだけでなく、様々な状況で活用できます。いくつかの便利な例を見てみましょう。

複数のファイルを1つに結合する

複数のファイルの内容を1つのファイルに結合したい場合、catコマンドを使用すると簡単に解決できます。次は、2つのファイル(file1.txtとfile2.txt)を結合してoutput.txtに保存する例です。

cat file1.txt file2.txt > output.txt
ShellScript

以下の図では、a.txtとb.txtファイルを生成した後、2つのファイルを結合してc.txtファイルに保存しました。

図7. Linuxコマンドcat: ファイルを結合する
図7. Linuxコマンドcat: ファイルを結合する

ターミナルから入力を受け取りファイルに保存する

catコマンドは、ファイルを読み込むだけでなく、ユーザーがターミナルから入力した内容をファイルに保存することもできます。

cat > new_file.txt
ShellScript

上記のコマンドを入力した後に内容を入力し、入力が終わったらCtrl + Dを押すと、入力した内容がnew_file.txtというファイルに保存されます。以下の図では、ユーザーが入力した内容「Hello, World!」をd.txtに保存し、確認してみました。

図8. Linuxコマンドcat: ターミナルから入力を受け取りファイルに保存
図8. Linuxコマンドcat: ターミナルから入力を受け取りファイルに保存

catコマンド使用時の注意点

catコマンドは非常に便利ですが、いくつか注意すべき点があります。

  • 大容量ファイル出力時の注意: 大容量のファイルをcatコマンドで出力すると、ターミナルが内容で一杯になり、出力が終わるまで他の作業ができなくなる可能性があります。このような場合、lessやmoreコマンドを使用する方が適切です。
  • ファイルの上書きに注意: catコマンドで複数のファイルを結合する際、既に存在するファイル名を指定すると、そのファイルが上書きされてしまうため注意が必要です。誤って重要なファイルが削除されることがあります。

まとめ

catコマンドは、Linuxでファイルを管理する際に非常に便利なツールです。ファイルの内容を表示し、複数のファイルを結合し、行番号の表示やタブ文字の表示などの多様なオプションを使って、ファイルをより簡単に分析することができます。ただし、大容量ファイルを扱う場合やファイルの上書きなどの状況では注意が必要です。catコマンドを上手に活用すれば、Linuxの作業をより効率的に行うことができます。本日の説明を参考に、catコマンドを有効に活用してみてください!

リファレンス

関連ポスト

コメントする