sed で条件にマッチする行の行頭に文字を入れる
例) 文字列'hoge'が含まれる行の頭に文字列'foo'を入れる
$ cat txt
aaaaaaaaaa
bbbhogebbb
cccccccccc
dddhogeddd
$ sed -i -e "s/.*hoge.*/foo&/" txt
$ cat txt
aaaaaaaaaa
foobbbhogebbb
cccccccccc
foodddhogeddd
ちなみに '&'1 はマッチした文字列という意味である。この例では'hoge'が含まれる行全体にマッチするから、すなわち'hoge'が含まれる行の頭にfooをつけて置換するという処理になる。
-
GNU版のsedコマンドでは '&' の代わりに '\0' と書いてもよい。 ↩