sed 一致部分をそのまま使う【Ubuntu】

こんにちは、minoruです。

Ubuntuのシェルスクリプトなどでsedコマンドを使う時に、一致した部分をそのまま置換後の文字列にも含めたい時には以下の通り。

echo "2/13 あいうえお" | sed -e "s#\(^[0-9]/\)#0\1#g"

実行結果は以下の通り。

※「^」は行頭を表す記号

02/13 あいうえお

例えば複数行に日付を含むデータや文字列があるファイルの場合、日付が2/13と02/13のように0があるパターンと無いパターンが混在していたら、02/13に統一したいのが人情。
指定時

\(hoge\)

使用時

\1

これがポイント。

ファイルを上書きで置換

sed -i -e "s#\(^[0-9]/\)#0\1#g" test.html

-iがファイルを上書きするオプションコマンドで、上記の場合同じ階層にあるtest.htmlというファイルの日付の混在を調整してくれる事になる。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする