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 コマンド。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。