sedで特定の文字列~文字列間を置換する
Pocket

sedでは、ある文字列~文字列間の行を置換する、と言った指定をすることが出来る。

sed '/文字列(開始)/,/文字列(終了)/s/○○○/●●●/g' 対象のファイルPATH

20150910_000000

[root@test-centos7 ~]# cat test.txt
testline1="test1"
testline2="test2"

testline3='test7'
testline4='test4'

testline5 test5
testline6 = test6
[root@test-centos7 ~]#
[root@test-centos7 ~]# sed '/line2/,/line3/s/test/aaaa/g' test.txt
testline1="test1"
aaaaline2="aaaa2"

aaaaline3='aaaa7'
testline4='test4'

testline5 test5
testline6 = test6
Sponsored Links

もちろん、行そのものの入れ替えをすることも可能だ。

[root@test-centos7 ~]# sed '/line2/,/line3/caaaa' test.txt
testline1="test1"
aaaa
testline4='test4'

testline5 test5
testline6 = test6

個人的には、ソースコードなどに記述されている文章を入れ替えたりする際などに役に立つので、結構便利だったりする。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。