Linuxユーザーのための22の必須catコマンドの例
「cat」(「concatenate」の略)コマンドは、最も頻繁に使用されるLinuxコマンドの一つであり、ほとんどのLinuxディストリビューションシステムにプリインストールされており、主に既存ファイルの内容を表示するために使用されます。
さらに、cat コマンドは、ユーザーが複数のファイルを連結したり、新しいファイルを作成したり、既存のファイルに内容を追加したり、ファイルの内容を表示したり、ターミナルやファイルに出力をリダイレクトしたりするために利用できます。
「cat」コマンドは、ファイルの内容の各行の前に番号を追加するなど、さまざまなオプションを使用してファイルの出力を形式化することにも使用できます。
さらに、ページナビゲーションの提供やファイル形式をバイナリまたは16進数に変換するなど、さまざまなタスクを実行するために他のコマンドと組み合わせて実行することができます。
この記事では、Linuxにおけるcatコマンドの便利な使い方とその例について探っていきます。
猫コマンド構文
猫コマンドは、以下に示すように、複数のオプションとファイル名引数を受け付けることができます。
$ cat [OPTION]... [FILE]...
上記の構文を理解しましょう:
- [オプション] – ユーザーはコマンドの動作を変更するために複数のオプションを提供できます。オプションはハイフン
("-")で始まり、たとえば"-E"は行の終了を表示するために使用され、"-n"は行の前に番号を表示するために使用されます。 - [ファイル] – ファイル引数は、コマンドによって操作されるファイルを指定します。ただし、ユーザーはスペースで区切られた複数のファイル名を指定することができます。
注意: catコマンドのすべての利用可能なオプションについて詳しく読むには、Linuxターミナルで"cat --help"コマンドを実行してください:
$ cat --help
さあ、catコマンドの力を活用するために、異なる例を探求しましょう。
1. Linuxでファイルの内容を表示する
catコマンドの基本的な機能は、Linuxで既存のファイルの内容を表示することです。そのためには、オプションなしでファイル名を指定します。
$ cat Documents/tecmint1.txt
ここでのコマンドでは、「tecmint1.txt」というファイルの内容が「ドキュメント」ディレクトリ内に表示されます。
2. Linuxで複数のファイルの内容を表示する
catコマンドは、ファイル名を空白で区切って指定することにより、複数のファイルの内容を表示するためにも利用できます。
$ cat tecmint1.txt tecmint2.txt
上記の出力では、ターミナルで両方のファイルの内容を見ることができます。最初の2行はファイル「tecmint1.txt」のものであり、出力の最後の行は「tecmint2.txt」ファイルの内容です。
3. cat コマンドでファイルを作成する
ユーザーは新しいファイルを作成し、">" シンボル(「出力リダイレクトオペレーター」として知られる)を使用して、コマンドの出力をファイル名「Tecmint_tutorial.txt」で指定されたファイルにリダイレクトし、内容を保存できます。
$ cat > Tecmint_tutorial.txt
注意: 新しいファイルを作成したい場合は、同じ名前のファイルがすでに存在しないことに注意してください。そうでないと、コマンドは既存のファイルの内容を上書きしてしまいます。
コマンドを実行すると、新しい行にインジケーターが点滅します。ファイルの内容を書き込み、“CTRL + D ”キーを押してファイルを保存して終了します:
lsコマンドを使用してファイルの作成を確認し、catコマンドを使用して新しく作成されたファイルの内容を表示できます:
$ ls
cat Tecmint_tutorial.txt
4. Linuxでファイルにテキストを追加する
catコマンドの利点の一つは、">>"記号(「追記リダイレクション演算子」として知られる)を使用して、既存のファイルに内容を追加できることです。そのため、“Tecmint_tutorial.txt“という既存のファイルに追加の内容を追記/結合します。
$ cat >> Tecmint_tutorial.txt
このファイルに追加したい内容を入力または貼り付けて、"CTRL + D"キーを押してください:
では、内容がファイルに保存されている既存の内容に追加されたかどうかを確認しましょう:
$ cat Tecmint_tutorial.txt
5. Linuxでファイルの内容を別のファイルにコピーする
時々、ユーザーはファイルに保存された内容のコピーを新しいファイルに作成したいと思うことがあります。これは、バックアップなど異なる目的のためです。ここで、">" 演算子は「Tecmint_tutorial.txt」ファイルの内容を順番に読み取って、「New_file.txt」という新しいファイルに配置します。
$ cat Tecmint_tutorial.txt > New_file.txt
次のステップは、新しいファイルが正常に作成されたかどうかを確認するために、以下を実行することです。
$ ls
cat New_file.txt
6. Linuxで複数のファイルの内容を1つのファイルに追加する
前述のように、cat コマンドは連結目的で使用できます。“tecmint1.txt” と “tecmint2.txt” の内容を連結/マージするためにコマンドを実行し、その結果を “cat_tecmint.txt” という新しいファイルに保存しましょう。
$ cat tecmint1.txt tecmint2.txt > cat_tecmint.txt
上記のコマンドは、“tecmint1.txt” および “tecmint2.txt” ファイルの内容を読み取り、新しいファイル “cat_tecmint.txt” に書き込みます。
今後、新しいファイルが両方のファイルの結合された内容を保存しているかどうかを確認する必要があります。
$ ls
cat cat_tecmint.txt
7. 行末付きのファイル内容を表示する
ユーザーは、ファイルの内容でEOL(行の終わり)文字を表示するために、"-E"オプションを使用することもできます。EOL文字は非表示文字として知られており、ドル記号("$")で表されます。
$ cat -E cat_tecmint.txt
期待される出力は、コンテンツの各行の最後に"$"記号を表示します。
8. 指定されたすべてのファイルタイプの内容を一覧表示する
cat コマンドは、"*" ワイルドカード文字を使用して、現在のディレクトリにあるすべてのファイルの内容を一覧表示できます。さらに、特定のファイルタイプを指定することも可能で、その後にワイルドカード文字を続けることで、ディレクトリ内のすべての「txt」ファイルの内容を表示できます。
$ cat *.txt
出力はすべての“txt ”ファイルの内容を順番に示しています。
9. ファイルに行番号を表示する
ファイルの内容の各行の前に行番号を表示したい場合は、-nオプションを使用して、ファイルの元の内容に変更を加えることなく出力に行番号を表示します。
$ cat -n Fruits.txt
期待される出力は、各行の前に行番号を表示します。
10. 複数のファイルの行番号を印刷する
cat コマンドに "-n" オプションを指定すると、複数のファイルに対しても動作し、複数のファイルの内容を連結し、結合された出力の各行の先頭に番号を追加できます。
$ cat -n Fruits.txt veg.txt
このコマンドでは、「Fruits.txt」と「veg.txt」ファイルの内容が結合され、その後“-n”オプションによって出力の各行の先頭に行番号が追加されます。
11. タブ文字でファイルの内容を表示する
「-T」オプションは、出力において非表示文字として知られるタブスペース文字「^I」を表示できます。
$ cat -T tabfile
出力には、タブスペースの代わりにタブ文字が含まれています。
12. more コマンドでファイルの内容を表示する
いくつかのファイルには、ターミナルの出力画面に完全に収まらない多くの内容が含まれています。そのようなファイルの内容を表示するために単純な cat コマンドを使用すると、出力は追加の内容があることを示さず、ユーザーはそれを見るために下にスクロールする必要があります。
$ cat tutorial.txt
ここに出力がありますが、実際のコンテンツの一部しか見ることができません。
この問題を解決するには、1つのコマンドの出力を別のコマンドの入力として使用するのに役立つパイプ "|" シンボルを使用できます。この場合、ファイルの最後でページナビゲーションを提供するmore コマンドです。
$ cat tutorial.txt | more
13. less コマンドでファイルの内容を表示する
キーを使用して、スクロール可能で検索可能な方法でファイルの内容を表示するために、少ないコマンドを使用することもできます。
$ cat tutorial.txt | less
14. 出力の中の繰り返しの空行を抑制する
場合によっては、ユーザーが単一の空白行の代わりに繰り返し空白行を誤って残すことがあります。しかし、cat コマンドは、"-s" オプションの助けを借りて、ファイルの内容から繰り返し空白行を抑制するために利用できます。
$ cat -s tutorial.txt
出力には単一の空行のみが含まれ、すべての繰り返し行は正常に抑制されます。
15. 別のファイルの末尾にファイルの内容を追加する
catコマンドは、<code>">>"</code>シンボル(「追記リダイレクションオペレーター」として知られる)を使用して、あるファイルの内容を別のファイルの末尾に追加することができます。
$ cat Fruits.txt >> veg.txt
cat veg.txt
出力は、両方のファイルの内容がveg.txtファイルに追加されていることを示しています。
16. ファイルの内容を逆順に表示する
ファイルの内容を逆順に表示するには、tacコマンドを使用します。これは「cat」の逆であり、最後の行を最初に表示し、次にその前の行、そしてそのように続きます。
$ tac Weekdays.txt
出力は「Weekdays.txt」の内容を逆順で表示します。
17. バイナリ形式でファイルの内容を表示する
「cat」コマンドは、「xxd」ユーティリティと「-b」オプションを組み合わせて、ファイルの内容をバイナリ形式に変換するために使用できます。
$ cat Weekdays.txt | xxd -b
上記のコマンドを分解しましょう。
- | – パイプ記号
(|)は、catコマンドの出力をコマンド(xxd -b)に送ります。 - xxd – それはコンテンツを16進数表現に変換するユーティリティです。
- -bオプションは、デフォルトの16進形式の代わりにバイナリ出力形式を指定するためにxxdと共に使用されます。
出力はファイルの内容をバイナリ形式と元の形式を並べて表示します。
18. ファイル内容を16進数形式で表示する
ファイルの内容を16進数形式に変換するには、以下に示すようにhexdumpユーティリティを利用できます:
$ cat Weekdays.txt | hexdump -C
ここでのコマンドでは、パイプ記号が両方のコマンドを結合しており、hexdump コマンドは内容を16進数形式に変換します。さらに、-C オプションを使用すると、16進数の値の横にASCII 表現が表示されます。
出力は、ファイルの変換された内容が16進数形式で正常に表示されることを示しています。
19. Linuxでファイルの特定の行を表示する
catコマンドは、ファイルから定義されたパターンに一致する特定の行の範囲を表示するために、sedコマンドと組み合わせることができます。
$ cat Weekdays.txt | sed -n '3,6p'
上記のコマンドでは、sedコマンドが、パイプ記号を使ってcatコマンドの出力を入力として受け取ります。それから、"-n"オプションとパターン“3,6p”を持つsedコマンドは、その入力から3行目から6行目までを印刷します。
20. ファイルの内容をアルファベット順に並べ替える
ユーザーは、表示されているように、cat コマンドをソートコマンドと組み合わせて、コンテンツの行をアルファベット順に並べ替えることができます。
$ cat -v veg.txt | sort
出力はファイルの内容をアルファベット順に並べたものを表示します。
21. ファイルの終端マーカーを表示する
catコマンドは「ヒアドキュメント」と共に利用でき、ユーザーがファイルに内容を入力し、ページの終わりのマーカーを設定するのに役立ちます。
「ヒアドキュメント」は、"<<" シンボルの後に区切り文字 "EOF" が続くことで示されており、ユーザーがターミナルから直接複数行のテキストを入力し、それをファイルに保存できるようにします。
入力プロセスは、新しい行に指定された区切り文字を入力することで終了します。
$ cat > month.txt << EOF
出力は入力をファイル「month.txt」に保存し、「EOF」が入力されたときに入力プロセスを終了しました。
22. LinuxでCPU情報を表示する
catコマンドは、CPUプロセッサ、モデル名、キャッシュサイズ、コア数、CPUのその他の詳細に関する情報を含む「cpuinfo」という名前の仮想ファイルの内容を表示することもできます。
$ cat /proc/cpuinfo
これでこのブログは終わりです。Linuxのcatコマンドの使い方を理解できたことを願っています。さらにオプションを知りたい場合は、catコマンドのマニュアルページを参照してください。
$ man cat
結論
この記事では、ファイルを連結、表示、作成するためのLinuxのcatコマンドの20の例を示しました。さらに、catコマンドは他のLinuxコマンドと組み合わせて、内容のソートや他のファイル形式への変換など、より高度な操作を実行するためにも使用できます。























