置換対象の文字列の箇所にて、再利用したい文字列を ()
で囲むと、置換後文字列にて、値を再利用できます。置換後文字列の部分にて、再利用したい文字を \1
\2
みたく指定してあげます。知らなかったのでメモ。
こちらのQiitaの記事を参考にさせて貰いました。
例。 YYYYMMDDHHMMSS
となっているタイムスタンプを、タイムゾーン情報を付与して整形しています。 ()
を利用する時は、エスケープ文字を置かないといけないので、非常に分かりづらくなる。
$ echo "001,20180508113500,AAAAAAAA,20200508113500" | sed -e "s/,\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\(,\|$\)/,\1-\2-\3 \4:\5:\6+900\7/g" 001,2018-05-08 11:35:00+900,AAA,2020-05-08 11:35:00+900