sedで置換結果にANSI Escapeを使って色付けをする
Pocket

時折、sedで置換する際にエスケープシーケンスを使って文字の色を指定したい場合というのがあると思うけど、それについて今まで把握してなかったので備忘で残しておく。
sedでエスケープシーケンスを表現する場合、残念ながらechoのときのように\eとかで表現しても置換できない。じゃあどうすればいいのかというと、エスケープを文字コード(\x1b)で記述してやることで表現できる。

sed 's/<Before>/\x1b[32m<Replace>\x1b[0m/g;'
Sponsored Links

実際に動かしてみるとこんな感じ。
ちゃんと色が付与されているのがわかる。

 

値を変えないのであればgrepでGREP_COLORSを指定してやればいいのだけど、置換処理が必要なのであればsedでやっちゃったほうがいいだろう。

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

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

*