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コマンドの使い方について書きました。
記事の内容をまとめると、下記のようになります。
・行番号を出したいときには`-b`または`-n`を使う
・ファイルの行を絞りたいときには、grepコマンドと一緒に使う。

コメント