Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も
2020/07/11
ファイルの内容を確認する cat、more、lessコマンド
catコマンドはファイルの内容を見る、ファイルを連結するコマンド
Linuxのコマンドでファイルの内容を見るコマンド「cat」について解説します。
catコマンドはファイルの内容を表示することができるコマンドですので、使用頻度が高いコマンドの一つです。
また、単にファイルの内容を表示するだけではなく、複数のファイルを 1ファイルに連結するときにも使うことが出来ます。
というより、「cat」コマンドは「conCATenate(連結する)」から来ていますので、ファイルを連結することの方が本来の機能であるのでしょう。
catコマンドの基本的な使い方
catコマンドの基本的な機能である、ファイルの内容を確認する、ファイルを連結するコマンドの使い方を解説します。
ファイルの内容を表示
ファイルの内容を表示するときは下記の様に、パラメータにファイル名を指定します。
1 |
$ cat file_name1 |
ファイルを連結する場合
ファイルを連結する場合は、連結するファイルをパラメータとして複数指定します。
1 2 |
$ cat file_name1 file_name2 file_name3 $ cat file_name1 file_name2 file_name3 > file_name4 |
連結するファイルは、スペースで区切り、いくつでも設定することが出来ます。
また、指定した順番に連結されます。
連結した結果は、標準出力(画面に出力)されますが、連結した内容をファイルに保存したい場合は、「>(リダイレクト)」を使用して出力ファイルを指定します。
実際にファイルを連結すると下記の様になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ cat file_name1 abcde11 fghij11 $ cat file_name2 abcde22 fghij22 $ cat file_name3 abcde33 fghij33 $ cat file_name1 file_name2 file_name3 > file_name4 $ cat file_name4 abcde11 fghij11 abcde22 fghij22 abcde33 fghij33 |
catコマンドのオプション
catコマンドに用意されている主なオプションは以下の通りとなります。
オプション | 説明 |
---|---|
-n、–number | 行番号を付け加える。 |
-b、–number-nonblank | 行番号を付け加える。ただし空白行には行番号を付けない。 |
-s、–squeeze-blank | 連続した空行を 1行にする |
-v、–show-nonprinting | tab、改行、改ページ以外の制御コード(非表示文字)を表示する |
-t | 制御コード(非表示文字)を表示する(TABを「^I」、改ページを「^L」とする) |
-E、–show-ends | 行末に「$」を表示する |
-A、–show-all | すべての制御コード(非表示文字)を表示する(-vET と同一) |
-e | tabを除くすべての制御コード(非表示文字)を表示する(-vE と同一) |
オプションの処理内容を確認するため、オプションを付けなかった場合は下記の様に表示される「file_name7」ファイルを参考に確認していきます。
1 2 3 4 5 6 7 8 |
$ cat file_name7 abcde77 fghij77 klmno77 pqrst77 |
-nオプションで行番号を付け加える
「-n」オプションで行番号を付け加えて表示させます。
1 2 3 4 5 6 7 8 |
$ cat -n file_name7 1 abcde77 2 fghij77 3 4 5 6 klmno77 7 pqrst77 |
-bオプションで行番号を付け加える(空白行には付けない)
「-b」オプションも行番号を付け加えて表示させます。
ですが、「-n」オプションと違うところは、空白行のところには行番号が付かないところです。
1 2 3 4 5 6 7 8 |
$ cat -b file_name7 1 abcde77 2 fghij77 3 klmno77 4 pqrst77 |
-sオプションで連続した空行を 1行にする
「-s」オプションは、連続した空行がある場合はまとめて 1行にします。
1 2 3 4 5 6 |
$ cat -s file_name7 abcde77 fghij77 klmno77 pqrst77 |
ちなみに、オプションを「-sn」とすると、空行を 1行にした状態での行数が表示されます。
-Aオプションで行末に「$」を表示する
「-A」オプションは行末に「$」を表示します。
これにより、空行が何行あるかが分かりやすくなります。
1 2 3 4 5 6 7 8 |
$ cat -A file_name7 abcde77$ fghij77$ $ $ $ klmno77$ pqrst77$ |
catコマンドと似た機能を持つ more、less、tac、nlコマンド
ファイルの内容を確認するコマンドとして catコマンドを使うことが多いのですが、同じ様にファイルの内容を確認する際に使用するコマンドとして、more、less、tacコマンドがあります。
more、lessコマンドは単独でファイルの内容を表示できる
more、lessコマンドは、ページャーとして利用している方も多いかと思います。
例えば、下記の様に「|(パイプ)」でつないで catの表示をページャーでページごとに区切って表示する、と言う使い方です。
※「/var/log/boot.log」を表示するには root権限が必要です。
1 2 |
# cat /var/log/boot.log | more # cat /var/log/boot.log | less |
ですが、実は、more、lessは、それ単体でファイルの内容を表示するという機能を持っており、catコマンドを使わなくても下記の様にmore、lessコマンドだけでファイルの内容をページャー機能付で表示することが出来るのです。
1 2 |
# more /var/log/boot.log # less /var/log/boot.log |
more、lessの詳しい使い方については下記に記事を書いていますので、あわせて参考にしてください。
less、moreはページャー、ファイルの中身を表示するLinuxのコマンド
tacコマンドはcatとは逆の順番で表示する
「cat」の文字列を逆にした「tac」というコマンドもあります。
この「tac」コマンドは「cat」コマンド名の文字列が逆になっているわけですが、コマンド名の綴りだけではなく、機能も「cat」の逆の機能となります。
「cat」はファイルの最初から順番に標準出力しますが、「tac」はファイルの最後から順番に標準出力する機能を持っています。
1 2 3 4 5 6 |
$ cat file_name1 abcde11 fghij11 $ tac file_name1 fghij11 abcde11 |
nlコマンドは行番号を表示するコマンド
catコマンドにはファイルに行番号を表示する「-n」「-b」オプションがありますが、行番号を表示するコマンドとして専用の nlコマンドもあります。
catコマンドでは「-n」オプションである、すべての行に行番号を付与する場合は下記のように記述します。
1 2 3 4 5 6 |
$ nl -b a file_name2 1 abcde 2 fghij 3 4 5 klmno |
また、「-b」オプションである、空白行には行番号を付与しない場合は下記のように記述します。
1 2 3 4 5 6 |
$ nl -b t file_name2 1 abcde 2 fghij 3 klmno |
nlコマンドの詳しい解説は下記に記事を書いていますので、あわせて参考にしてください。
Linuxのnlは行番号を付与してファイルの内容を表示するコマンド
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Linuxのマニュアルページ表示コマンドmanの解説
Linuxにはコマンド操作のオンラインマニュアルが用意されています。そのマニュアルを表示するコマンドが「man」です。「man」コマンドの使い方について解説します。
-
Linuxで使用される主な環境変数・PATH、HOME、PS1・printenv、set、declare
Linuxに設定されている主な環境変数の解説。PWD、HOSTNAME、USER、LANG、HOME、LOGNAME、PS1、PS2、HISTSIZE、HISTFILE、HISTFILESIZE、TERMなどがある。
-
makewhatis、mandbコマンドでLinuxのオンラインマニュアル索引情報を更新
Linuxコマンドのオンラインマニュアルを検索するwhatis、aproposなどのコマンドはwhatisデータベースを対象に検索する。このデータベースを更新するmandb、makewhatisコマンドを解説。
-
less、moreはページャー、ファイルの中身を表示するLinuxのコマンド
Linuxにはコマンドで実行した結果が長い場合、1画面ごとに区切って表示するコマンドが用意されている。それがページャーと呼ばれるmore、lessだ。この使い方を解説。
-
Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説
Linuxでコマンドを設置するパスの設定情報である環境変数「PATH」の確認方法と環境変数「PATH」に新しいパスを追加する方法の解説。Linuxのシェルでの変数の扱い方についての解説も。
-
Linux findコマンドを使ってn日前のファイルを削除する 3つの記述方法
作成からn日経ったファイルを削除したい、そんなときにはfindコマンドを使う。コマンドの記述の方法は3種類あり、それぞれを解説。書き易さもあるがスピードに大きく差がある記述方法もある。
-
Linuxのbashで変数に値を追加する方法を多数紹介。+=や””を使う方法など
Linuxのbashで変数に値を代入する方法を解説。bashの変数の処理は柔軟で様々な方法を採れる。デリミタなしで値を追加する方法などを解説。
-
Linuxのタイムスタンプはmtime、ctime、atimeの3種類。touchコマンドで更新する方法
Linuxのファイルのタイムスタンプにはmtime、ctime、atimeの3種類がある。その違いを詳細に解説しつつ、lsで表示するオプション、touchで更新するオプションを解説。
-
Linuxのコマンドの情報を調べるwhich、whereis、whatis、apropos、man
Linuxのコマンドの実行ファイルやマニュアルの情報を確認するコマンドwhich、whereis、whatis、apropos、manの機能と使い方、似たところと違うところの紹介。
-
Linuxのファイル表示・結合catの逆処理のtac、revコマンドの解説
Linuxにtac、revというコマンドがある。catの逆の処理なのだが、tacは最終行から逆に表示し、revは行末の文字から逆に表示をすることを解説しつつその使い方について詳しく解説をする。