ファイルの末尾に一行追加する(シェルスクリプト)

課題

ファイルの末尾に自動的に一行追加するスクリプトを作成したい。ただし一過性のものなので、できるだけ楽に実現したい。

解決策

GNU sedを利用する。

例えば、ファイルの末尾に「hoge」という文字列を追加したいとき、以下のようにすれば良い。

$ gsed -i '$s/$/\nhoge/' sample.txt

※ただし sample.txt は空でないとする

GNU sed を利用することで以下のような利点が得られる。

  • ファイルを上書きする -i オプションにより一時ファイルを作成する必要がない
  • 置換文字列中で改行を表すエスケープシーケンス「\n」を利用できる

所感

便利な独自拡張を作りやがって...