Bashでは、ファイルにテキストを追加する方法は複数あります。この記事ではそれらのいくつかについて説明します。
ファイルにテキストを追加するには、ファイルへの書き込み権限が必要です。そうしないと、許可拒否エラーが発生します。
リダイレクト演算子(>>
を使用してファイルに追加する )#
リダイレクトを使用すると、コマンドからの出力をキャプチャして、別のコマンドまたはファイルへの入力として送信できます。 >>コード> リダイレクト演算子は、出力を特定のファイルに追加します。
echo
を使用して、テキストを標準出力に出力し、ファイルにリダイレクトするために使用できるコマンドがいくつかあります。 およびprintf
最も使用されているものです。
ファイルにテキストを追加するには、リダイレクト演算子の後にファイルの名前を指定します。
echo "this is a new line" >> file.txt
-e
と併用した場合 オプションecho
コマンドは、改行 \ n
などのバックスラッシュでエスケープされた文字を解釈します :
echo -e "this is a new line \nthis is another new line" >> file.txt
より複雑な出力を生成するには、 printf
を使用します 出力のフォーマットを指定できるコマンド:
printf "Hello, I'm %s.\n" $USER >> file.txt
ファイルにテキストを追加する別の方法は、ヒアドキュメント(Heredoc)を使用することです。これは、コマンドに複数行の入力を渡すことができるリダイレクトの一種です。
たとえば、コンテンツを cat
に渡すことができます コマンドを実行してファイルに追加します:
cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(whoami)
EOF
任意のコマンドの出力をファイルに追加できます。 date
の例を次に示します。 コマンド:
date +"Year: %Y, Month: %m, Day: %d" >> file.txt
リダイレクトを使用してファイルに追加する場合は、>
を使用しないように注意してください。 重要な既存のファイルを上書きする演算子。
tee
を使用してファイルに追加する コマンド#
tee
はLinuxのコマンドラインユーティリティであり、標準入力から読み取り、標準出力と1つ以上のファイルの両方に同時に書き込みます。
デフォルトでは、 tee
コマンドは指定されたファイルを上書きします。出力をファイルに追加するには、 tee
を使用します -a
を使用 (-追加
)オプション:
echo "this is a new line" | tee -a file.txt
tee
が必要ない場合 標準出力に書き込むには、 / dev / null
にリダイレクトします :
echo "this is a new line" | tee -a file.txt >/dev/null
tee
を使用する利点 >>
に対するコマンド 演算子はそのtee
一度に複数のファイルにテキストを追加したり、 sudo
と組み合わせて他のユーザーが所有するファイルに書き込んだりすることができます 。
書き込み権限がないファイルにテキストを追加するには、 sudo
を先頭に追加します tee
の前 以下に示すように:
echo "this is a new line" | sudo tee -a file.txt
tee
echo
の出力を受け取ります コマンドを実行し、sudo権限を昇格させ、ファイルに書き込みます。
複数のファイルにテキストを追加するには、ファイルを tee
の引数として指定します コマンド:
echo "this is a new line" | tee -a file1.txt file2.txt file3.txt
結論#
Linuxでは、ファイルにテキストを追加するには、>>
を使用します リダイレクト演算子またはtee
コマンド。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。