【Linuxコマンド入門】catコマンドの使い方!オプション5つ!

linux command Linuxコマンド

Linuxコマンドのcatコマンドの使い方について書いています。

catコマンドを使うことで、指定したパスのファイルの内容を表示することができます。
今回載せているコマンドはUbuntuの22.04.2で確認しました!

catコマンドの使い方

catコマンドを使うと、指定したパスのファイルを瞬時に表示してくれます。
catはcatenate(連結する)の略とのことです。

このように、ファイルのパスを指定します。

$ cat hello.txt

hello.txtを指定して、中身を表示しようとしています。
エンターを押して実行すると、下記のように指定したパスのファイルの内容が表示されます。

$ cat hello.txt
hello, world!!
test123
abcdefg...

ファイルの行番号を出したい

ファイルの行番号を出したい場合は、-nもしくは-bを使います。
-nの場合は空白行もカウントされて表示されます、-bの場合には空白行はスキップされます。

例えば、下記のように空白行がいくつか入っているファイルです。

banana

apple


lemon

peach

-nオプションのときには、空白行の行番号もカウントされます。

$ cat -n fruits.txt 
     1  banana
     2  
     3  apple
     4  
     5  
     6  lemon
     7  
     8  peach
     9

それに対して、-bオプションを使ったときには、下記のように空白行には行番号がつきません。(出力はされます)

$ cat -b fruits.txt 
     1  banana

     2  apple


     3  lemon

     4  peach

ファイルの特定行を検索して表示したい

catコマンドだけではできないので、grepコマンドと組み合わせて使うことで、特定の行を検索して表示することができます。
例えば、特定の文字列が入っている行だけ出したいときです。

$ cat fruits.txt | grep app

fruits.txtの中身を表示して、パイプ(|)を使ってgrepコマンドで処理します。
grepコマンドにはappを渡しているので、appがついている行だけ取得して表示されます。

$ cat fruits.txt | grep app
apple

catコマンドのオプションは?

catコマンドのオプションについてです。

--helpでヘルプを確認

--helpを実行すると、下記のようにコマンドの説明が表示されました。
MacOSでは表示されないので、実行環境によって出ないことがあります。

$ 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'

タブ表示する(Tオプション)

通常だとタブ文字があるファイルを表示させても、タブなのか空白なのか見分けがつかないです。
-Tオプションでタブ文字を^Iで表示させることができます。

下記ではtest.txtファイルのタブを表示しています。

$ cat -T test.txt
aaaa
aaa^Ibbb^Iccc

1234 text aaa
^Iaaaa
bbbb
ccccc

行の末尾に$を表示する(Eオプション)

行の末尾を明確にするために$を表示することができます。
このときには-Eオプションを使います。

下記ではtest.txtファイルの行末を表示しています。

$ cat -E test.txt
aaaa$
aaa bbb ccc$
$
1234 text aaa$
    aaaa$
bbbb$
ccccc$

行番号を表示する(bまたはnオプション)

行番号を表示するには-bまたは-nオプションを使います。
-bオプションだと、空行が無視されて、-nだと空行にも行番号がつきました。

-bオプションをtest.txtファイルに使ってみました。

$ cat -b test.txt
     1  aaaa
     2  aaa bbb ccc

     3  1234 text aaa
     4      aaaa
     5  bbbb
     6  ccccc

-nオプションをtest.txtファイルに使ってみました。

$ cat -n test.txt
     1  aaaa
     2  aaa bbb ccc
     3  
     4  1234 text aaa
     5      aaaa
     6  bbbb
     7  ccccc

空行を制御する(sオプション)

繰り返しの空行が入っているときには-sオプションで、まとめて1行にしてくれるようです。
例えば、下記のようにファイルにbbbbの下に3つの空行、cccの下に2つの空行があります。

aaa
bbbb



ccc


ddd

-sオプションを使うと、それぞれをまとめて1行にして見やすく表示してくれるようです。

$ cat -s test2.txt 
aaa
bbbb

ccc

ddd

catコマンドのオプション一覧(表)

今回使ったオプションを表にしてみました。

オプション値 内容
-T タブ文字を^Iで表示させる
-E 行の末尾に$を表示する
-b 空行を無視して、行番号を表示する
-n 空行にも行番号を表示する
-s 連続した空行を1行にまとめる

使用したオプションは「-snE」のように、あわせて一緒に使うこともできます。

catコマンドの使い方まとめ

今回はcatコマンドの使い方について書きました。
記事の内容をまとめると、下記のようになります。

・catコマンドを使うと指定したパスのファイルの内容を表示できる
・行番号を出したいときには`-b`または`-n`を使う
・ファイルの行を絞りたいときには、grepコマンドと一緒に使う。

コメント

タイトルとURLをコピーしました