Bash でファイルに書き込む
このチュートリアルでは、bash でファイルを書き込むためのさまざまなアプローチを探ることができます。 要件に基づいて、ファイルを追加または上書きできます。 どうすればできるか見てみましょう。
Bash でファイルを書き込み/上書きするさまざまな方法
出力を上書きしてファイルに追加するために、>
や >>
などの複数の演算子が表示されます。 さらに、tee
コマンドを使用して、単一および複数のファイルを上書きおよび追加します。
>
演算子を使用してファイルを上書きする
>
演算子は、ファイルを上書きするために使用されます。 たとえば、次のコードはファイルを上書きするために使用されます。
echo "Overwriting in the file" > test.txt
上記のコマンドは、test.txt
ファイルが存在しない場合は上書きします。 それ以外の場合は、新しいものを作成します。 echo
は、テキストの書式設定をサポートしていないため、通常は使用されません。
echo
の代わりに、整形済みテキストには printf
を使用します。 次の例は、printf
を使用したファイルの上書きを示しています。
printf "overwriting using the printf \n now in next line" > test.txt
上記のコマンドは、文字列をフォーマットし、printf
の後に新しい行を追加します。
>>
演算子を使用してファイルに書き込む
>>
演算子は、ファイルの末尾にコンテンツを追加するために使用されます。 たとえば、次のコマンドを使用して、test.txt
という名前のファイルにデータを追加します。
echo "Append in the file" >> test.txt
vim
コマンドを使用してファイルに書き込む
vim
エディターは、ファイルの内容を編集するためにも使用されます。 たとえば、次のコードは、vim
エディターで test.sh
ファイルを開きます。
sudo vim test.sh
vim エディターを開いた後、次のスクリプトを追加して、ファイルの書き込み操作を実行します。
#! /bin/bash
echo "Enter Student Name"
read yourName
echo $yourName > test.txt
echo "Enter age"
read age
echo $age >> test.txt
cat test.txt
コードを追加したら、ESC を押して w と入力してファイルを閉じます。 bash test.sh
を使用してファイルを実行します。
上記のスクリプトは、ファイル書き込みの 2つの方法を示しています。 4 行目では、ファイルを上書きする >
演算子を使用しました。 7 行目では、>>
演算子を使用します。これは、前の内容を上書きせず、文字列を新しい行に追加します。
tee
コマンドを使用してファイルに書き込む
ファイルとコンソールへの書き込み操作を同時に実行したい場合は、tee
コマンドを使用できます。 同時に入力を受け取り、文字列をファイルとコンソールに書き込みます。
tee
コマンドを使用すると、ファイルに書き込まれている内容をコンソールで確認できます。 tee
コマンドは、ファイルの上書きと追加にも使用されます。
tee
コマンドを使用してファイルを上書きする
次のコマンドは、tee
コマンドを使用して上書きするために使用されます。
echo "Testing the Tee Command" | tee test.txt
上記のコマンドは、パイプ (|
) から文字列入力を取得し、コンソールとファイルに同時に書き込みます。
tee
コマンドを使用してファイルに追加する
-a
フラグは tee
コマンドでファイルを追加するために使用されます。 たとえば、次のコードは Testing the Tee Command
を test.txt
ファイルに追加します。
echo "Testing the Tee Command" | tee -a test.txt
コンテンツを複数のファイルに同時に書き込む必要がある場合があります。 tee
コマンドを使用して、すべてのファイルの名前を単一のスペースで区切って指定することで、これを実現できます。
次の bash コマンドは、コンテンツを複数のファイルに書き込む方法を示しています。
echo "Writing text to the multiple files" | tee test1.txt test2.txt test3.txt
上記のコマンドは、入力文字列をコンソールに書き込み、3つのテキスト ファイルを同時に書き込みます。