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コマンドと一緒に使う。
コメント