sedで行頭を指定する場合、「^」を頭につける事で対応するが、では行頭以外を指定する場合はどうすればいいのだろうか。
その場合は、以下のようにコマンドを実行することで指定可能だ。
sed 's/\([^^]\)置換前文字列/置換後文字列/g' ファイルPATH
実際に実行した結果がこちら。
[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
ログなどで、行頭にあるタイムスタンプ以外の日付を全て置換したい時などに有効だろう。