410gone.click

©2021 sumomo-99

[Linux] catコマンドの基本的な使い方

更新日: 2021-04-11T08:12:41.860Z

Linux

catコマンドは引数で指定したファイルや標準入力の内容を連結して、標準出力に出力します。

cat - concatenate files and print on the standard output

 
catコマンドはCoreutils - GNU Core Utilitiesに含まれています。
ここでは、catコマンドの基本的な使い方を紹介します。
※以降の実行例は、Ubuntu17.10にて実行および確認をした結果です。

目次

  1. 基本的な使い方
  2. 1つのファイルの内容を確認する
  3. 復数のファイルの内容を連結する
  4. 復数のファイルの内容を連結する(パス展開)
  5. 連結した内容を他のファイルに出力する
  6. 標準入力とファイルの内容を連結する
  7. 行番号を追加する
  8. 行番号を追加する(空白行は除く)
  9. 行末に$を追加する
  10. 連続する空白行をまとめる
  11. タブ(TAB)を表示する

1. 基本的な使い方

cat [option]... [file]...

fileの指定がない場合は、標準入力から読み込みを行います。

2. 1つのファイルの内容を確認する

ファイルを1つだけ指定した場合、そのファイルの内容を表示します。

$ cat file1.txt
aaa
bbb
$ cat file2.txt
ccc

ddd


eee

3. 復数のファイルの内容を連結する

復数のファイルを指定することで、ファイルの内容を連結して出力します。

$ cat file1.txt file2.txt
aaa
bbb
ccc

ddd


eee

4. 復数のファイルの内容を連結する(パス展開)

bashのパス展開機能を使えば、このような書き方もできます。

$ cat *.txt
aaa
bbb
ccc

ddd


eee

5. 連結した内容を他のファイルに出力する

catコマンドで連結した内容を他のファイルに出力するには、リダイレクト(>)を利用します。

$ cat file1.txt file2.txt > file3.txt
$ cat file3.txt
aaa
bbb
ccc

ddd


eee

6. 標準入力とファイルの内容を連結する

$ echo 'こんにちは' | cat - file1.txt
こんにちは
aaa
bbb

echoコマンドの出力をパイプ'|'でcatコマンドの標準入力へ渡します。catコマンドの'-'が標準入力を表しています。

7. 行番号を追加する

-nオプションで行番号を追加して出力します。

$ cat -n file2.txt
     1  ccc
     2
     3  ddd
     4
     5
     6  eee

8. 行番号を追加する(空白行は除く)

-bオプションで行番号を追加して出力します(空白行を除く)。

$ cat -b file2.txt
     1  ccc

     2  ddd


     3  eee

9. 行末に$を追加する

-Eオプションで行末に'$'を追加します。

$ cat -E file2.txt
ccc$
$
ddd$
$
$
eee$

行末に空白や制御文字を含んでいて、行末がわかりにくときに利用すると便利かもしれません。

$ echo 'a      ' | cat -E
a      $
$ echo -e 'a\t\t' | cat -E
a               $

10. 連続する空白行をまとめる

-sオプションで連続する空白行を1行の空白行にまとめます。
結果をわかりやすくするために、-nオプションで行番号も付けて実行してみます。

$ cat -n file2.txt
     1  ccc
     2
     3  ddd
     4
     5
     6  eee
$ cat -sn file2.txt
     1  ccc
     2
     3  ddd
     4
     5  eee

'ddd'から'eee'の間の空白2行が-sオプションで1行になりました。

11. タブ(TAB)を表示する

-Tオプションでタブを'^I'の文字へ置き換えて表示します。

$ echo -e 'abc\tefg' | cat
abc     efg
$ echo -e 'abc\tefg' | cat -T
abc^Iefg

 
以上、catコマンドの基本的な使い方の紹介でした。