Linuxでファイルに行を追加する

1. 前書き

このチュートリアルでは、Bashコマンドを使用してLinuxのファイルに1つ以上の行を追加するいくつかの方法を検討します。
最初に、* _ echo _、_ printf、_、および_cat_などの最も一般的なコマンドを調べます。*次に、*あまり知られていないが便利なBashユーティリティである_tee_コマンドを調べます。*

2. _echo_コマンド

https://linux.die.net/man/1/echo[_echo_ command]は、Linux Bashで最も広く使用されている組み込みコマンドの1つです。 通常、これを使用して標準出力に文字列を表示できます。標準出力はデフォルトの端末です。
echo "This line will be displayed to the terminal"
次に、デフォルトの標準出力を変更し、入力文字列をファイルに流します。 この機能は、リダイレクト演算子(>)によって提供されます。 *以下に指定されたファイルにすでにデータが含まれている場合、データは失われます:*
echo "This line will be written into the file" > file.txt
  • _file.txt_に行を追加し、その内容を上書きしないようにするには、*別のリダイレクト演算子(>>)を使用する必要があります。

echo "This line will be appended to the file" >> file.txt
「>」および「>>」演算子は_echo_コマンドに依存せず、任意のコマンドの出力をリダイレクトできることに注意してください。
ls -al >> result.txt
find . -type f >> result.txt
さらに、_- e_オプションを使用して、バックスラッシュエスケープの解釈を有効にできます。 そのため、*改行文字_´\ n'_などの特殊文字が認識され、ファイルに複数の行を追加できます:*
echo -e "line3\n line4\n line5\n" >> file.txt

3. _printf_コマンド

https://linux.die.net/man/1/printf[_printf_ command]は、同じ名前のC関数に似ています。 次の形式で標準出力に引数を出力します。
printf FORMAT [ARGUMENTS]
例を作成し、リダイレクト演算子を使用してファイルに新しい行を追加しましょう。
printf "line%s!" "6" >> file.txt
_echo_コマンドとは異なり、*複数行を追加する必要がある場合は_printf_ ’の構文が簡単であることがわかります。*ここでは、改行文字を使用するために特別なオプションを指定する必要はありません。
printf "line7\nline8!" >> file.txt

4. _cat_コマンド

  • cat commandは、ファイルまたは標準入力を標準出力に連結します。*

    _echo_コマンドに似た構文を使用します。
cat [OPTION] [FILE(s)]
違いは、パラメータとしての文字列の代わりに、_cat_は1つ以上のファイルを受け入れ、指定された順序でその内容を標準出力にコピーすることです。
_file1.txt_にすでにいくつかの行があり、_result.txt_に追加したいとします。
cat file1.txt >> result.txt
cat file1.txt file2.txt file3.txt >> result.txt
次に、コマンドから入力ファイルを削除します。
cat >> file.txt
この場合、_cat_コマンドは端末から読み取り、_file.txt_にデータを追加します。
それでは、新しい行を含む何かをターミナルに入力し、_CTRL + D_を押して終了します。
[email protected]:~/Desktop/baeldung/append-lines-to-a-file$ cat >> file.txt
line1 using cat command
line2 using cat command
<press CTRL+D to exit>
これにより、file.txt._の最後に2行が追加されます。

5. _tee_コマンド

もう1つの興味深い便利なBashコマンドは、https://linux.die.net/man/1/tee [_tee_ command]です。 *標準入力からデータを読み取り、標準出力およびファイルに書き込みます*
tee [OPTION] [FILE(s)]
tee file1.txt
tee file1.txt file2.txt
*入力をファイルに追加し、その内容を上書きしないようにするには、_- a_オプションを適用する必要があります:*
[email protected]:~/Desktop/baeldung/append-lines-to-a-file$ tee -a file.txt
line1 using tee command
_Enter_を押すと、実際に同じ行が繰り返し表示されます。
[email protected]:~/Desktop/baeldung/append-lines-to-a-file$ tee -a file.txt
line1 using tee command
line1 using tee command
これは、デフォルトでは、端末が標準入力と標準出力の両方として機能するためです。
必要な行数を入力し続け、各行の後に_Enter_キーを押します。 端末で各行が複製され、_file.txt_に追加されることに気付くでしょう。
[email protected]:~/Desktop/baeldung/append-lines-to-a-file$ tee -a file.txt
line1 using tee command
line1 using tee command
line2 using tee command
line2 using tee command
<press CTRL+D to exit>
ここで、入力を端末に追加するのではなく、ファイルにのみ追加したいとします。 これは_tee_コマンドでも可能です。 したがって、リダイレクト演算子を使用して、fileパラメーターを削除し、標準入力を_file.txt_にリダイレクトできます。
[email protected]:~/Desktop/baeldung/append-lines-to-a-file$ tee >> file.txt
line3 using tee command
<press CTRL+D to exit>
最後に、_file.txt_ ’の内容を見てみましょう。
This line will be written into the file
This line will be appended to the file
line3
line4
line5
line6
line7
line8
line1 using cat command
line2 using cat command
line1 using tee command
line2 using tee command
line3 using tee command

6. 結論

このチュートリアルでは、Linuxのファイルに1行以上を追加するのに役立ついくつかの方法を説明しました。
最初に、_echo、printf_、および_cat_ Bashコマンドを検討し、ファイルにテキストを追加するためにこれらをリダイレクト演算子と組み合わせる方法を学びました。 また、1つ以上のファイルのコンテンツを別のファイルに追加する方法も学びました。
第二に、ファイルにテキストを追加する組み込みのメカニズムがすでにあり、必ずしもリダイレクト演算子を必要としない、あまり知られていない_tee_コマンドを調べました。