Bash を使ってファイルにテキストを追加する方法

  1. リダイレクション演算子 >> を使ってファイルにテキストを追加する
  2. テキストをファイルに追加する tee コマンド

テキストをファイルに追加するには、リダイレクト(>>)演算子と tee コマンドを使用します。

ファイルにテキストを追加するのに十分な権限があることを確認しなければなりません。十分なパーミッションがない場合、パーミッション拒否エラーが発生する可能性があります。

リダイレクション演算子 >> を使ってファイルにテキストを追加する

リダイレクション演算子 >>bash コマンドから出力を取得し、その出力を別のファイルに追加する。標準出力にテキストを印刷する方法はたくさんあるが、echoprintf が最も一般的なコマンドである。

テキストをファイルに追加するには、出力コマンドのいずれかを使ってテキストを印刷するコマンドを書き、>> 演算子の後にテキストを追加するファイル名を付けます。

echo "Hello World" >> abc.txt

これにより、ファイル abc.txt の最後に Hello World というテキストが追加されます。

現在の作業ディレクトリにファイルが存在しない場合、このコマンドは空のファイルを作成し、そのファイルに Hello World というテキストを書き込みます。

エスケープシーケンス文字の Hello World を解釈するには、echo コマンドで -e オプションを使用します。

echo -e "Hello World! \nThis is DelftStack" >> abc.txt

これにより、テキスト

Hello World!
This is DelftStack

をファイル abc.txt に追加する。

テキストが追加されたかどうかを確認するには、cat コマンドを使ってファイルの内容を見ることができます。

cat abc.txt

出力:

Hello World! 
This is DelftStack

テキストが追加されていれば、ファイルの最後にテキストが表示される。

より整形されたテキストが必要な場合は、printf コマンドを使ってより整形された出力を生成することができる。

printf "The path of shell interpreter is %s\n" $SHELL >> abc.txt

これはファイル abc.txtThe path of shell interpreter is /bin/bash というテキストを追加します。

テキストをファイルに追加する tee コマンド

tee は標準入力から入力を受け取り、それを 1つ以上のファイルと標準出力に同時に書き込むコマンドラインユーティリティである。

デフォルトでは、tee コマンドはファイルの内容を上書きする。ファイルの最後にテキストを追加するだけなら、コマンドの -a または --append オプションを使う。

echo "Hello World!" | tee -a abc.txt

出力:

Hello World!

Hello World!をファイル abc.txt に追加し、テキストをターミナルの標準出力に書き込みます。

テキストをファイルに追加する際にパーミッションが拒否された場合は、tee コマンドの前に sudo キーワードを追加すればよい。

echo "Hello World!" | sudo tee -a abc.txt

標準出力を見たくない場合は、/dev/null にリダイレクトすればよい。

 echo "Hello World!"  | tee -a abc.txt >/dev/null

tee コマンドを使う利点の一つは、tee コマンドを使って複数のファイルに同時にテキストを書き込むことができることである。複数のファイルにテキストを書き込むには、スペースで区切ったファイルをリストアップすればよい。

echo "Hello World!" | sudo tee -a abc.txt backup.txt

これにより、abc.txtbackup.txt の両方のファイルに同時にテキストを追加することができる。

comments powered by Disqus