Engineering

Ubuntu catコマンドの使い方

  • 作成日:2024年3月24日1:17
  • 更新日:2024年3月24日15:56

Linux

Ubuntu

Ubuntuのcatコマンドはファイルの内容を確認するときによく用いられるコマンドです。また、もともと「連結する」という意味のconcatenateからきている通り複数のファイルを指定すると連結して表示されます。
ファイル名を指定せず、「-」を指定して実行すると標準入力を受け付ける形となり、入力した文字列に対して処理が実行されます。

man cat
...
NAME
       cat - concatenate files and print on the standard output
...

コマンド引数は以下のものがあります。

引数 効果
-Aまたは--show-all (-vETを指定した場合と同様)
-bまたは--number-nonblank 空行以外の各行に1から始まる数字を振る
-e (-vEを指定した場合と同様)
-Eまたは--show-ends 各行の末尾に「$」がつく。\r\nの組み合わせは「^M$」として表示される
-nまたは--number 各行に数字が振られる。-bオプションが有効の場合はそちらが優先される
-sまたは--squeeze-blank 空行が複数連続している場合、空行が一行分にまとめられる
-t (-vTを指定した場合と同様)
-Tまたは--show-tabs TABを「^I」として表示する
-u 無視される( POSIXとの互換性のため)
-vまたは--show-nonprinting LFDとTAB以外の制御文字を「^」を使ったノーテーションで表示する。またハイビットセットを持つ (0x80 から 0xFF までの)文字 は 「M-」 を先頭につけて表示する。
--help ヘルプを表示
--version バージョン情報を表示


以下の内容のファイルを指定してcatコマンドを実行した際の核オプションごとの出力を示します。

First line
あいうえお
TAB->   <-TAB
SPACE-> <-SPACE


\
End of FILE

実行例:オプションなし
# オプションなしで実行するとファイルの内容がそのまま表示される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat demo-01.txt
First line
あいうえお
TAB->   <-TAB
SPACE-> <-SPACE


\
End of FILE

実行例:-Aまたは--show-all
# -Aオプションで実行するとTABを含む制御文字や日本語文字列が置き換えられ、末尾に「$」がつく(詳しくは-v/-E/-Tオプションを参照)
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -A demo-01.txt
First line$
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J$
TAB->^I<-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$
# --show-allオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --show-all demo-01.txt
First line$
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J$
TAB->^I<-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$
# -vETオプションを指定した場合と同様の出力になっている
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -vET demo-01.txt
First line$
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J$
TAB->^I<-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$

実行例:-bまたは--number-nonblank
# -bオプションでコマンドを実行すると空行以外の各行に数字が振られる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -b demo-01.txt
     1  First line
     2  あいうえお
     3  TAB->   <-TAB
     4  SPACE-> <-SPACE


     5  \
     6  End of FILE
# --number-nonblankオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --number-nonblank demo-01.txt
     1  First line
     2  あいうえお
     3  TAB->   <-TAB
     4  SPACE-> <-SPACE


     5  \
     6  End of FILE

実行例:-e
# -eオプションで実行するとTABを除く制御文字や日本語文字列が置き換えられ、末尾に「$」がつく(詳しくは-v/-Eオプションを参照)
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -e demo-01.txt
First line$
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J$
TAB->   <-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$
# -vEオプションを指定した場合と同様の出力になっている
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -vE demo-01.txt
First line$
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J$
TAB->   <-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$

実行例:-Eまたは--show-ends
# -Eオプションでコマンドを実行すると各行の末尾に「$」がつく
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -E demo-01.txt
First line$
あいうえお$
TAB->   <-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$
# --show-endsオプションでも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --show-ends demo-01.txt
First line$
あいうえお$
TAB->   <-TAB$
SPACE-> <-SPACE$
$
$
\$
End of FILE$

実行例:-nまたは--number
# -nオプションでコマンドを実行すると各行に数字が振られる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -n demo-01.txt
     1  First line
     2  あいうえお
     3  TAB->   <-TAB
     4  SPACE-> <-SPACE
     5
     6
     7  \
     8  End of FILE
# --numberオプションでも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --number demo-01.txt
     1  First line
     2  あいうえお
     3  TAB->   <-TAB
     4  SPACE-> <-SPACE
     5
     6
     7  \
     8  End of FILE
# -bオプションが同時に指定された場合は-bオプションが優先される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -bn demo-01.txt
     1  First line
     2  あいうえお
     3  TAB->   <-TAB
     4  SPACE-> <-SPACE


     5  \
     6  End of FILE

実行例:-sまたは--squeeze-blank
# -sオプションでコマンドを実行すると空行が一行にまとめられる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -s demo-01.txt
First line
あいうえお
TAB->   <-TAB
SPACE-> <-SPACE

\
End of FILE
# --squeeze-blankオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --squeeze-blank demo-01.txt
First line
あいうえお
TAB->   <-TAB
SPACE-> <-SPACE

\
End of FILE

実行例:-t
# -tオプションで実行するとTABを含む制御文字や日本語文字列が置き換えられる(詳しくは-v/-Tオプションを参照)
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -t demo-01.txt
First line
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J
TAB->^I<-TAB
SPACE-> <-SPACE


\
End of FILE
# -vTオプションを指定した場合と同様の出力になっている
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -vT demo-01.txt
First line
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J
TAB->^I<-TAB
SPACE-> <-SPACE


\
End of FILE

実行例:-Tまたは--show-tabs
# -Tオプションでコマンドを実行するとTABが「^I」で表示される
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -T demo-01.txt
First line
あいうえお
TAB->^I<-TAB
SPACE-> <-SPACE


\
End of FILE
# --show-tabsオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --show-tabs demo-01.txt
First line
あいうえお
TAB->^I<-TAB
SPACE-> <-SPACE


\
End of FILE

実行例:-u
# -uオプションを指定しても出力は変わらない
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -u demo-01.txt
First line
あいうえお
TAB->   <-TAB
SPACE-> <-SPACE


\
End of FILE

実行例:-vまたは--show-nonprinting
# -vオプションでコマンドを実行するとTAB以外の制御文字や日本語文字列などが置き換わる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat -v demo-01.txt
First line
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J
TAB->   <-TAB
SPACE-> <-SPACE


\
End of FILE
# --show-nonprintingオプションも同様
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --show-nonprinting demo-01.txt
First line
M-cM-^AM-^BM-cM-^AM-^DM-cM-^AM-^FM-cM-^AM-^HM-cM-^AM-^J
TAB->   <-TAB
SPACE-> <-SPACE


\
End of FILE

実行例:--help
# --helpオプションで基本的な用法を確認できる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

  -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  -n, --number             number all output lines
  -s, --squeeze-blank      suppress repeated empty output lines
  -t                       equivalent to -vT
  -T, --show-tabs          display TAB characters as ^I
  -u                       (ignored)
  -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
      --help     display this help and exit
      --version  output version information and exit

Examples:
  cat f - g  Output f's contents, then standard input, then g's contents.
  cat        Copy standard input to standard output.

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/cat>
or available locally via: info '(coreutils) cat invocation'

実行例:--version
# --versionオプションでバージョン情報を確認できる
demo@demo-01-Ubuntu22:~/ubuntu-commands$ cat --version
cat (GNU coreutils) 8.32
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Torbjorn Granlund and Richard M. Stallman.




参考文献:
- man catコマンド
- https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html#cat-invocation
- https://man.plustar.jp/manpage/man1/cmp.1.html