Home
915 words
5 minutes
【Unix】catコマンドの解説
2025-02-22

最終更新:2025-02-22

catコマンドは、Unix系システムにおいて、ファイルの内容を連結して表示するための基本的なツールである。複数のファイルを連結して出力するほか、標準入力からの内容をそのまま標準出力に書き出すことで、テキストの確認や簡単な編集、リダイレクトを活用した各種処理に利用される。ここでは、catコマンドの全オプションをできるだけ具体的に説明し、ハンズオン形式でその利用方法を示す。


基本的な使用法#

catコマンドの使用方法は、次のとおりである。

cat [オプション] [ファイル名]

指定したファイルの内容が標準出力に表示される。複数ファイルを指定する場合は、順次連結されて表示される。


主なオプションの詳細#

以下、catコマンドで使用可能な主要なオプションについて、具体的に説明する。

  • -A, —show-all
    非表示文字も含めた全ての文字を表示する。これは、-vETオプションの組み合わせと同等である。
    例:

    cat -A filename
    
  • -b, —number-nonblank
    空行を除く各行に行番号を振る。-nオプションと競合するが、空行には番号を付けない。
    例:

    cat -b filename
    
  • -e
    -vEと同じ効果があり、行末に「$」を表示する。
    例:

    cat -e filename
    
  • -E, —show-ends
    各行の終端に「$」記号を付加して表示する。これにより、行末の改行が明示的に確認される。
    例:

    cat -E filename
    
  • -n, —number
    全ての出力行に対して行番号を振る。空行にも番号が振られる。
    例:

    cat -n filename
    
  • -s, —squeeze-blank
    連続する空行を1行に縮めて表示する。冗長な空行の出力を防ぐ場合に有用である。
    例:

    cat -s filename
    
  • -t
    -vTの意味を持ち、非表示文字を表示し、タブ文字を「^I」として表示する。
    例:

    cat -t filename
    
  • -T, —show-tabs
    タブ文字を「^I」として表示する。テキストのフォーマットが視覚的に認識しやすくなる。
    例:

    cat -T filename
    
  • -u
    未バッファ出力モードで動作させるが、現在ではほとんどの環境で無視される。過去のシステムとの互換性のために残されている。
    例:

    cat -u filename
    

ハンズオン#

以下に、catコマンドの基本的な操作およびオプションの使用例を示す。

1. ファイルの内容表示#

ターミナルにて、単一のファイルの内容を確認するためには、次のように実行する。

cat sample.txt

これにより、sample.txtの内容がそのまま出力される。

2. 複数ファイルの連結表示#

複数のファイルを連結して表示する場合、次のように実行する。

cat part1.txt part2.txt part3.txt

これにより、part1.txtpart2.txtpart3.txtの内容が順次表示される。

3. 行番号付きで表示#

全行に番号を付けて表示したい場合は、-nオプションを使用する。

cat -n sample.txt

または、空行を除く形で番号を付けたい場合は、-bオプションを利用する。

cat -b sample.txt

4. 行末の明示表示#

各行の末尾を視覚的に確認したい場合は、-Eオプションや-eオプションを用いる。

cat -E sample.txt

これにより、各行末に「$」が表示され、改行位置が明示される。

5. 空行の縮小表示#

連続する空行が多い場合、-sオプションを使用して出力を整理する。

cat -s sample.txt

これにより、連続する空行が1行に圧縮される。

6. タブ文字の視覚化#

テキスト内のタブ文字を「^I」と表示し、視認性を向上させるには、-Tオプションを使用する。

cat -T sample.txt
【Unix】catコマンドの解説
https://ss0832.github.io/posts/20250222_cat_command_guide/
Author
ss0832
Published at
2025-02-22