1. 概要
このチュートリアルでは、Linux catコマンドを使用してテキストをファイルに書き込む方法を見ていきます。
2. catコマンド
cat コマンドは、Linuxのユーティリティコマンドです。 最も一般的に知られている使用法の1つは、ファイルのコンテンツを標準の出力ストリームに出力することです。 それ以外に、 cat コマンドを使用すると、いくつかのテキストをファイルに書き込むこともできます。
3. 構文
catコマンドの一般的な構文を見てみましょう。
cat [OPTION] [FILE]
まず、OPTIONはコマンドの印刷動作を変更するために適用できるフラグのリストですが、FILEはコマンドに読み取らせたいファイルのリストです。
ドキュメントから、 FILE引数に値が渡されない場合、catコマンドは標準入力から読み取られることがわかります。同様に、ダッシュ「 -「FILE引数に値が渡されます。 Linuxリダイレクト演算子と組み合わせて、 cat コマンドに標準の入力ストリームをリッスンさせ、コンテンツをファイルにリダイレクトさせることができます。
4. catをstdinから読み取るようにする
catコマンドを実行してみましょう。
cat
コマンドを入力すると、コマンドが何も返さないことがわかります。 これは、catコマンドが標準入力をリッスンしているためです。
ターミナルにいくつかのテキストを入力してみましょう。
cat
This is a new line
This is a new line
観察できるのは、標準の入力ストリームに入力したテキストがcatコマンドによって出力ストリームにエコーされることです。完了したら、CTRL+Dを押してコマンドを終了できます。 。
5. catを使用したファイルへの書き込み
ファイルに書き込むには、 cat コマンドで入力ストリームをリッスンし、Linuxリダイレクト演算子「>」を使用してcatコマンドの出力をファイルにリダイレクトします。具体的には、 cat コマンドを使用してファイルに書き込むには、次のコマンドを端末に入力します。
cat > readme.txt
もう一度、端末が入力を待機していることがわかります。 ただし、今回は入力したテキストはエコーされません。 これは、出力を標準の出力ストリームではなくファイルreadme.txtにリダイレクトするようにコマンドに指示したためです。
ターミナルにいくつかのテキストを入力し、続いてCRTL+Dを入力してコマンドを終了しましょう。
cat > readme.txt
This is a readme file.
This is a new line.
ファイルreadme.txtには、入力した2行が含まれています。 結果を確認するために、catコマンドをもう一度使用できます。
cat readme.txt
This is a readme file.
This is a new line.
出来上がり! catコマンドを使用してファイルに書き込みました。
5. catを使用してファイルにテキストを追加する
前の例で注意しなければならないことの1つは、ファイルreadme.txt。を常に上書きすることです。既存のファイルに追加する場合は、「>>」を使用できます。 」演算子。
cat >> readme.txt
This is an appended line.
最後のコマンドがファイルを追加したことを確認するために、ファイルの内容を確認します。
cat readme.txt
This is a readme file.
This is a new line.
This is an appended line.
入力した行は、ドキュメント全体を置き換えるのではなく、ファイルの最後に追加されます。
6. ヒアドキュメント
ヒアドキュメント構文をcatコマンドで使用できることにも注意してください。
cat > readme.txt << EOF
This is an input stream literal
EOF
ここで、 EOF は、 cat コマンドに、後続の行でそのようなトークンが見つかったときに終了するように指示するトークンです。
トークンは、入力ストリームリテラルに表示されないほど明確である限り、他の値にすることができます。 開始トークンと終了トークンの両方がreadme.txtファイルに表示されないことに注意してください。
7. 結論
この記事では、catコマンドの一般的な構文について説明しました。 また、catコマンドを特定のファイルではなく標準の入力ストリームからリッスンさせる方法も示しました。 最後に、 cat コマンドとLinuxリダイレクト演算子を使用して、ファイルに書き込みまたは追加する方法を示しました。