サイトアイコン IT NEWS

Linuxでファイルの末尾に指定した行数を一気に追加する方法

linux-for-echo

以前記事にしたtailを利用したログ監視のテストとして、ログファイルに1行ずつ書く場合は単純にechoコマンドを使えばいいが、ログが一気に出力された時にちゃんと差分を見ているのか確認するには一気に複数行追加する必要がありました。

当初は方法がわからなかったため、ログファイルを編集モードで開いて追加していましたが、今回紹介するforループ)を利用したコマンド1発で、ログファイルに複数行を一気に書き込むことができたのでメモしておきます。

ファイルに複数行追加

繰り返しのfor文

開発経験者なら当たり前ですが、処理を繰り返すためにforwhileといった構文が、どのプログラミング言語にも用意されています。
tailを利用したログ監視の記事ではwhileを使用していましたね。
まずは見やすいように、シェルスクリプト形式で複数行&インデント付きで解説していきます。

for i in {1..10} 
do
  echo "test${i}" >> test.log
done

1行目はこのようになります。

for [変数名] in {[開始]..[終了]}

つまり、変数iがdodoneの中で1から10まで繰り返すということ。
結果は”test~“の後ろに連番が付きます。

1行のコマンドとして

上記の内容をたった1行のコマンドとして表すとこのようになります。

for i in {1..10}; do echo "test${i}"; done >> test.log

今後、色々なテストで使えそうですね!

モバイルバージョンを終了