クローゼの色々備忘録

仕事や私生活で学んだこと、ゲームの感想などを記録。お役に立てれば幸いです。

ある文字列を、ファイルの行を指定して挿入したい

きっかけ

下記のように、コマンドの実行結果をあるファイルに書き出す「リダイレクト」という方法がある。

 

# echo "Hello!" >> test.txt

 

『>>』だと追記になるんだけど、これだとファイルの末尾に挿入される。

ユーザー追加とかした際に、その情報をファイルに追記するんだけど、どしても間に入れたかったのね。

なのでどうにかして、行を指定して挿入できんもんだろかと考えた。

 

方法

てっきり『>>』に何かオプションでもあるのかと思ってたけど、

そんなものはなく・・・

 

なんと、『sed』コマンドが使えるそう!

 

こんなファイルがあったとする

# cat test.txt

-----------------------------------

PEACH

APPLE

-----------------------------------

 

2行目に挿入したとする

# sed -i -e "2i BANANA" test.txt

  • -i』:上書きモードで実行する
  • -e』:指定したスクリプト(条件式)で変換処理を行う
  • 2』:挿入したい行番号
  • i 文字列』:挿入したい文字列を記載

 

実行結果

# cat test.txt

-----------------------------------

PEACH

BANANA

APPLE

-----------------------------------

 

ちゃんと、ファイルの2行目に挿入された。

なんと素晴らしい!

これは、今後も使えそうです。

 

 

以上、本日の学びでした。