bashシェルコマンドラインでファイルに追加する方法
BashシェルはLinuxシステムで最も人気のあるシェルであり、シェルを効率的に使用するには、Bashシェルのリダイレクションについて少し知識が必要です。これはBashスクリプトを学ぶための重要なステップでもあります。
このガイドでは、Bashシェルのコマンドラインでファイルにテキストやコマンド出力を追加する方法を示します。これにはいくつかの例が含まれており、どのシナリオでも適切な方法を選ぶことができます。
このチュートリアルでは、あなたは学びます:
- ファイルにテキストまたはコマンドの出力を追加する方法
- コマンドの出力を同時に追加して表示する方法
- ファイルに複数行のテキストを追加する方法
LinuxのBashでファイルにテキストを追加する
Bashでファイルに追記する方法
Bashで新しいファイルを作成するには、通常、リダイレクションに>を使用しますが、既存のファイルに追加するには>>を使用します。以下の例を見て、どのように機能するか確認してください。
ファイルの末尾にテキストを追加するには、
echoを使用し、その出力をファイルに追加するようにリダイレクトできます。指定したファイルがまだ存在しない場合は、自動的に作成されます。echo "Linux is great" >> file.txtコマンドの出力をファイルにリダイレクトすることもできます。この例では、現在の日付をファイルに追加します。
date >> file.txtこれが今のところ私たちのファイルの見た目です。
cat file.txt Linux is great Fri 09 Apr 2021 12:11:12 PM EDTリダイレクトしたときに、
dateコマンドの出力がターミナルに表示されないことに気づくかもしれません。それは、出力がファイルに送られ、ターミナルには表示されなかったからです。ただし、エラーが発生した場合は表示されます。コマンドの出力をファイルにリダイレクトしつつ同時に表示するには、teeにパイプすることができます。teeを使用する際には、-aオプションも使わなければならないことに注意してください。uptime | tee -a file.txt 12:16:46 up 7 min, 1 user, load average: 0.06, 0.64, 0.48そして今、私たちのファイルはこのようになっています。
cat file.txt Linux is great Fri 09 Apr 2021 12:11:12 PM EDT 12:16:46 up 7 min, 1 user, load average: 0.06, 0.64, 0.48複数行をファイルに追加したい場合は、
echo -eを使用し、各行を\n(改行文字)で区切ります。以下のようになります。echo -e "Bash is my favorite shell. \nZ shell is alright too." >> file.txtそして結果は…
cat file.txt ... Bash is my favorite shell. Z shell is alright too.ファイルに複数行を追加する別のオプションは、BashのHeredoc機能を使用することです。これにより、複数行をファイルに渡すことができます。コマンドの最初に「デリミタ」を指定する必要があり、通常は単にEOF(ファイルの終わり)ですが、技術的には何でも可能です。次のように、3行をファイルに追加する場合の見た目になります。
cat << EOF >> file.txt My user account is: $(whoami) My home directory is: $HOME Pretty cool, huh? EOFそして結果は…
cat file.txt ... My user account is: linuxconfig My home directory is: /home/linuxconfig Pretty cool, huh?
これがBashでファイルにテキストやコマンド出力を追加するために知っておくべきすべての異なる構文です。ファイルを見てみると、私たちの例のすべてが作業していたファイルに追加されていることがわかります。したがって、これらすべての方法は同じ結果を提供しますが、特定のシナリオではいくつかの方が便利です。
すべての例のコマンドは同じファイルに追加されました。
締めくくりの考え
このガイドでは、Bashシェルでファイルに追記する方法を見てきました。これには、標準の >> リダイレクションや、tee コマンドとHeredoc機能の使用が含まれています。あなたは今、Bashでファイルに追記する専門家であり、シェル全体をマスターするためにさらに近づきました。

