ある文字列を、ファイルの行を指定して挿入したい
きっかけ
下記のように、コマンドの実行結果をあるファイルに書き出す「リダイレクト」という方法がある。
# echo "Hello!" >> test.txt
『>>』だと追記になるんだけど、これだとファイルの末尾に挿入される。
ユーザー追加とかした際に、その情報をファイルに追記するんだけど、どしても間に入れたかったのね。
なのでどうにかして、行を指定して挿入できんもんだろかと考えた。
方法
てっきり『>>』に何かオプションでもあるのかと思ってたけど、
そんなものはなく・・・
なんと、『sed』コマンドが使えるそう!
こんなファイルがあったとする
# cat test.txt
-----------------------------------
-----------------------------------
2行目に挿入したとする
# sed -i -e "2i BANANA" test.txt
- 『-i』:上書きモードで実行する
- 『-e』:指定したスクリプト(条件式)で変換処理を行う
- 『2』:挿入したい行番号
- 『i 文字列』:挿入したい文字列を記載
実行結果
# cat test.txt
-----------------------------------
BANANA
-----------------------------------
ちゃんと、ファイルの2行目に挿入された。
なんと素晴らしい!
これは、今後も使えそうです。
以上、本日の学びでした。