sedで行頭以外の置換を指定する
Pocket

sedで行頭を指定する場合、「^」を頭につける事で対応するが、では行頭以外を指定する場合はどうすればいいのだろうか。
その場合は、以下のようにコマンドを実行することで指定可能だ。

sed 's/\([^^]\)置換前文字列/置換後文字列/g' ファイルPATH
Sponsored Links

実際に実行した結果がこちら。

20150906_000003

[root@test-centos7 ~]# sed 's/^test/aaaa/g' /work/test.txt
aaaaline1="test1"
aaaaline2="test2"

aaaaline3='test7'
aaaaline4='test4'

aaaaline5 test5
aaaaline6 = test6
[root@test-centos7 ~]# sed 's/\([^^]\)test/aaaa/g' /work/test.txt
testline1=aaaa1"
testline2=aaaa2"

testline3=aaaa7'
testline4=aaaa4'

testline5aaaa5
testline6 =aaaa6

ログなどで、行頭にあるタイムスタンプ以外の日付を全て置換したい時などに有効だろう。

Pocket

Written by blacknon

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

Leave a Comment

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