Linux cat コマンド:ファイルの連結と表示

LinuxBeginner
オンラインで実践に進む

はじめに

このチュートリアルでは、テキストファイルの表示や操作に欠かせない Linux の万能ツール、cat コマンドを紹介します。cat を使ってファイルの内容を表示したり、複数のファイルを結合したり、表示をカスタマイズするための様々なオプションを活用する方法を学びます。このチュートリアルを終える頃には、Linux ユーザーにとって必須のスキルである基本的なファイル操作を cat で自在に行えるようになっているはずです。

あなたはテック系スタートアップの新しいインターンだと想像してください。最初のタスクは、会社の Linux サーバーに散らばっている様々なテキストファイルから日報を作成することです。ファイルの内容を確認し、それらを結合して、出力を整える必要があります。このタスクにおいて、cat コマンドはあなたの強力な武器となるでしょう。

プロジェクトディレクトリの確認

まずは、プロジェクトディレクトリの中身を確認することから始めましょう。

  1. ターミナルを開きます。通常、末尾が $ 記号で終わるコマンドプロンプトが表示されます。

  2. プロジェクトディレクトリに移動します:

cd /home/labex/project

このコマンドは、現在のディレクトリを /home/labex/project に変更します。cd は「change directory(ディレクトリ変更)」の略です。

  1. 現在の場所を確認します:
pwd

pwd は「print working directory(作業ディレクトリの表示)」の略です。画面に /home/labex/project と表示されるはずです。

  1. ディレクトリ内のファイル一覧を表示します:
ls

このコマンドは、現在の場所にあるすべてのファイルとディレクトリを表示します。daily_report.txtsales.txtmarketing.txt といったいくつかのテキストファイルが表示されるはずです。

ファイル内容の表示

次に、cat コマンドを使ってファイルの内容を表示してみましょう。cat は「concatenate(連結する)」の略ですが、単にファイルの内容を表示するために非常によく使われます。

  1. daily_report.txt ファイルの内容を表示します:
cat daily_report.txt

このコマンドを実行すると、ファイルの内容全体がターミナルに表示されます。ファイルが長い場合は、ターミナルウィンドウの表示範囲を超えてスクロールすることがあります。

  1. ファイルの冒頭が見えない場合は、ターミナルの画面をクリアしてリセットできます:
clear

clear コマンドは必須ではありませんが、作業スペースを整理するのに役立ちます。今は完全に理解していなくても大丈夫です。ターミナルの管理については、今後のレッスンで詳しく学びます。

  1. 再度、ファイルの内容を表示してみましょう:
cat daily_report.txt

内容を読んでみてください。これが cat コマンドの力です。ターミナル上で直接、テキストファイルの内容を素早く確認することができます。

複数ファイルの結合

cat コマンドは、複数のファイルを結合するためにも使用できます。これが「concatenate(連結)」という名前の由来です。

  1. まず、sales.txtmarketing.txt の内容を個別に確認してみましょう:
cat sales.txt
cat marketing.txt

それぞれのファイルに何が書かれているか覚えておいてください。

  1. 次に、これらのファイルを結合して表示します:
cat sales.txt marketing.txt

このコマンドは、2 つのファイルの内容を、あたかも 1 つのファイルであるかのように順番に表示します。cat が指定した順序で各ファイルの内容を出力していることに注目してください。

  1. ここで「出力リダイレクト(output redirection)」という新しい概念を紹介します。Linux では、コマンドの出力(通常ターミナルに表示されるもの)を、画面ではなくファイルに送ることができます。これには > 記号を使います。使い方は以下の通りです:
cat sales.txt marketing.txt > combined_report.txt

このコマンドを分解して説明します:

  • cat sales.txt marketing.txt は、先ほど使った 2 つのファイルの内容を表示するコマンドです。
  • > 記号は新しい要素です。これは Linux に対し、「ターミナルに表示されるはずの内容を、代わりにファイルに書き込め」と指示します。
  • combined_report.txt は、新しく作成するファイルの名前です。

つまり、このコマンドは「sales.txt と marketing.txt を結合した内容を、画面に出すのではなく、combined_report.txt という新しいファイルに保存せよ」という意味になります。

これは Linux の非常に強力な機能で、コマンドの結果を後で使うために保存しておくことができます。最初は少し難しく感じるかもしれませんが、今後のレッスンで何度も練習するので安心してください。

  1. リダイレクトが正しく行われたか、新しいファイルの内容を確認してみましょう:
cat combined_report.txt

この新しいファイルの中に、sales.txtmarketing.txt の両方の内容が含まれていれば成功です。おめでとうございます!出力リダイレクトを使ってファイルを結合することができました。

行番号オプションの使用

cat コマンドには、出力をより見やすくするためのオプションがあります。行番号を表示するオプションを試してみましょう。

  1. daily_report.txt の内容を行番号付きで表示します:
cat -n daily_report.txt

-n オプションは、すべての出力行に番号を振るよう cat に指示します。ファイル内の特定の行について言及したいときに非常に便利です。

  1. 行番号なしの出力と比較してみてください:
cat daily_report.txt

-n オプションによって各行の先頭に番号が追加され、ファイルの特定の部分を参照しやすくなったことがわかります。

行末文字の表示

もう一つの便利なオプションは、行末文字を表示することです。これにより、行の終わりがどこか、あるいは末尾に余計なスペースがないかを確認できます。

  1. 行末文字を可視化した状態で daily_report.txt を表示します:
cat -E daily_report.txt

-E オプションは、各行の末尾に $ を表示するよう cat に指示します。これにより、各行がどこで終わっているかが一目でわかります。これは、フォーマットの問題をデバッグする際に特に役立ちます。

  1. 通常の出力と比較してみましょう:
cat daily_report.txt

-E オプションによって各行の最後に $ が追加され、行の境界が明確になっていることに注目してください。

まとめ

このチュートリアルでは、cat コマンドを使った様々なファイル操作を学びました:

  • ファイル内容の表示
  • 複数ファイルの結合
  • 行番号(-n)や行末表示(-E)などのオプションの活用

これらのスキルは、Linux 環境でテキストファイルを管理・操作する際に非常に役立ちます。Linux の学習を続ける中で、万能な cat コマンドのさらなる活用方法をたくさん見つけることになるでしょう。

このチュートリアルで紹介しきれなかったその他の cat コマンドオプションには、以下のようなものがあります:

  • -A: すべての非表示文字を表示(-vET と同等)
  • -b: 空行以外の行に番号を振る
  • -s: 連続した空行を 1 行にまとめる
  • -T: タブ文字を ^I として表示
  • -v: 改行とタブ以外の非表示文字を ^M- 表記で表示