Bashシェルスクリプトでファイルを作成し、文字列を追加する方法を紹介します。
次のような場合には、Bashでどのように実装すべきかを知ってみましょう。
- 空のファイル生
- ファイルの作成と文字列の追加
- 存在するファイルの最後に文字列の追加
1. 空のファイルの生成
touch
コマンドは、空のファイルを作成します。
次のコードを実行すると、空のファイルが生成されることを確認することができます。
#!/bin/bash
touch sample.txt
Output:
$ bash example.sh
$ ls sample.txt
sample.txt
$ cat sample.txt
2. echoでファイルを作成して文字列を追加する
echoは、端末に文字列を出力するときに使用します。
echoに >
演算子を使用して、文字列をファイルに出力することができます。ファイルが存在する場合、 >
演算子は、ファイルの内容をすべて削除して、渡された文字列のみを保存するようにします。
#!/bin/bash
echo "Hello, World" > sample.txt
次のようにスクリプトを二度実行して cat
にファイルの内容を出力してみるとHello, World
のみファイルに保存されたことを確認することができます。
$ bash example.sh
$ bash example.sh
$ cat sample.txt
Hello, World
2.1 >>
演算子でファイルの最後に文字列を追加する
echoで >>
演算子を使用すれば、既存のファイルの内容は、削除せず、ファイルの末尾に文字列を追加します。つまり、既存のファイルの内容は削除されず、文字列のみを追加します。
#!/bin/bash
echo "Hello, World" >> sample.txt
次のように、スクリプトを3回実行して cat
にファイルの内容を出力してみるとHello, World
が3回出力された。 >>
は、既存のファイルの末尾に文字列を追加するためです。
$ bash example.sh
$ bash example.sh
$ bash example.sh
$ cat sample.txt
Hello, World
Hello, World
Hello, World
3. teeコマンドでファイルに文字列を追加する
teeコマンドは、ファイルに文字列を格納し、ターミナルに出力します。
#!/bin/bash
echo "Hello, World" | tee sample.txt
スクリプトを実行してみるとechoによって端末に文字列が出力され、ファイルにも保存されていることを確認することができます。
$ bash example.sh
Hello, World
$ cat sample.txt
Hello, World
3.1 teeコマンドで既存のファイルに文字列を追加する
もし既存のファイルは削除しないで、ファイルの末尾に文字列だけを追加するには、次のように -a
オプションを使用します。
#!/bin/bash
echo "Hello, World" | tee -a sample.txt
Output:
$ bash example.sh
Hello, World
$ bash example.sh
Hello, World
$ cat sample.txt
Hello, World
Hello, World
3.1 teeを使用したときに結果を出力しない
teeに文字列を追加するときに、ターミナルに出力されないようにするには、 > /dev/null
のように出力を標準出力(STDOUT)ではない/dev/null
に送信することができます。
#!/bin/bash
echo "Hello, World" | tee sample.txt > '/dev/null'
Output:
$ bash example.sh
$ cat sample.txt
Hello, World
Related Posts
- Bash Shell - 文字列の出力方法(echo, printf)
- Bash Shell - 数値比較演算子
- Bash Shell - 変数が定義されているかどうかを確認する方法
- Bash Shell - スリープ関数、特定の時間を停止する
- Bash Shell - 文字列 切り出し(substring、split)
- Bash Shell - 日付、時刻を取得する
- Bash Shell - 文字列を連結する方法
- Bash Shell - ファイルの生成と文字列の追加
- Bash Shell - 文字列比較、文字列が含まれているかどうかを確認する
- Bash Shell - 条件文(if-else)
- Bash Shell - 数値演算(プラス、マイナス、乗算、除算)