ファイルを識別する方法を学んだら、次はその内容を読みましょう。cat コマンドはファイルを表示し、その内容を結合します。名前は「concatenate」の略です。
コマンドライン · レッスン 7
cat
`cat` コマンドでファイル内容を安全に表示、連結、リダイレクトする方法を学びます。
ファイル内容を表示する
cat の最も簡単な使い方は、ファイルを端末へ直接表示することです。
$ cat myfile.txt
コマンドはファイル全体を標準出力へ書き込みます。短いテキストには適していますが、長いファイルは速すぎて画面から流れ去ることがあります。
myfile.txt の全内容を端末へ表示するコマンドはどれですか?
ファイルを連結する
cat に複数のファイルを渡すと、オペランドの順に読み、その内容を続けて書き込みます。
$ cat dogfile birdfile
dogfile が先、birdfile が後に表示されます。結合した出力を新しいファイルへ保存するには、> で標準出力をリダイレクトします。
$ cat dogfile birdfile > animals
シェルは cat を実行する前に animals を作成または切り詰め、そこへ結合した出力を送ります。入力ファイルの 1 つを出力先にすると、cat が読む前に空になる可能性があるため、使用しないでください。
part1 に続けて part2 を、新規または置換される whole ファイルへ書き込むコマンドはどれですか?
端末入力をファイルへ書き込む
入力ファイルを指定しない場合、cat は標準入力を読みます。この動作を > と組み合わせ、端末から入力したテキストをファイルへ書き込めます。
$ cat > newfile.txt
コマンドの後で目的のテキストを入力します。Ctrl+D でファイル終端信号を送り、シェルへ戻ります。newfile.txt がすでに存在すると、> が以前の内容を切り詰めるため注意してください。
既存内容を置き換えず、新しい入力を追加するには >> を使います。
$ cat >> notes.txt
既存の notes.txt の末尾へ追加するテキストを入力したい場合、ファイルを切り詰めずに操作を始めるコマンドはどれですか?
出力を整形する
いくつかのオプションで出力を確認しやすくできます。
-n:1 から始め、すべての出力行に番号を付ける-b:空でない出力行だけに番号を付ける-s:複数の空行を 1 つの空行へまとめる-A:非表示文字、タブ、行末を表示する
例を示します。
$ cat -n script.sh
$ cat -b notes.txt
$ cat -s messy.txt
notes.txt の空でない出力行だけに番号を付けるコマンドはどれですか?
長いファイル用のビューアーを選ぶ
出力全体を一度に必要とする場合は cat を使います。長いファイルは、端末へ大量に流さずスクロール、検索、終了できる less の方が便利です。
$ less /var/log/syslog
長いログファイルを対話的に読むのに適したコマンドはどれですか?
ファイル内容の表示と結合を練習するには、次のハンズオンラボを利用してください。
- **Linux cat コマンド:ファイルの連結**:
catでテキストファイルを表示、連結、操作する方法を学びます。 - **Linux でログと設定ファイルを表示する**:
catなどでシステムログや設定ファイルを効率よく表示し、必要な情報を取り出します。
レッスン完了
cat を完了しました
これで安全なリダイレクトを選びながら、cat でファイル内容を表示、結合できるようになりました。
短いファイルの全内容を表示する。
選んだ順序でファイルを連結する。
出力先の置換または追記を意図的に選ぶ。
行に番号を付けるか、出力を簡略化する。
対話的な読み取りに適する場合は
lessを選ぶ。