シェルスクリプトでファイルの最後からN行目に行を追加する
はじめに
シェルスクリプトで
「ファイルの先頭行からN行目に行を追加する」
のは簡単ですが、
「ファイルの最終行からN行目に行を追加する」
方法についてうまいやり方がないかについて質問されたのでワンライナーで実現できる方法について紹介します。
検証環境
ファイルの先頭行からN行目に行を追加する
sed
を利用します。 i
という内部コマンドを利用します。
ファイルの最終行からN行目に行を追加する
sed
に加えて tac
コマンドを利用します。
仕組みは単純で、一度ファイルを逆順にしてから、先頭行からN行目に差し込んだ後、再度逆順にします。
ちなみに tac
については以下のエントリでも取り上げています。
ファイルサイズが大きい場合
ファイルサイズが大きいと処理時間がかかるので、その場合はもう少しマシなロジックを組むほうがいいですね。
ひとこと
以下のエントリで忘れかけていたことが思い出せてよかった。
ディスカッション
コメント一覧
まだ、コメントがありません