sedコマンドを使用して特定の範囲内を置換したいです。 aaa.txt --------------- abc 123 456 ppp"abc123" qqq"efg456" ---------------
sedコマンドを使用して特定の範囲内を置換したいです。 aaa.txt --------------- abc 123 456 ppp"abc123" qqq"efg456" --------------- 4行目の""内を置換しbbb.txtへ吐き出したいです。 文字数は、変動します。 bbb.txt --------------- abc 123 456 ppp"p123" qqq"efg456" --------------- sed -e ''4s/a.*/p123/'' aaa.txt > bbb.txt 特定の範囲内で変動する文字列の場合、どのようにしたらよろしいのでしょうか? ご教授願いたいです。
ベストアンサー
何が変動するのかよくわかっていないのですが, 4行目の引用符の中の文字列が変わるということなら sedで抽出して置換すればできますよ。 sed '4s/^\(.*\)"\(.*\)"\(.*\)$/\1"p123"\3/' aaa.txt > bbb.txt 引用符の後に文字が続かないことが確定しているなら sed '4s/^\(.*\)"\(.*\)"$/\1"p123"/' aaa.txt > bbb.txt これで大丈夫です。
質問者からのお礼コメント
やりたいことが出来ました。ありがとうございました。
お礼日時:1/20 16:51