May -> Proof

雑記帳です

sedのデリミタは/でなくてもよかった

あるシェルスクリプト hage.sh に含まれるテンプレート文字列 {#TEMPLATE#} を、環境変数で注入するファイルパスに置換したい事例があって、sedで置換しようとしたけどうまくいかなかった。パスの /sedのデリミタの / が競合してしまってたのが原因。

env PATH_FOO=/foo/bar/baz
cat hage.sh | sed -e s/{#TEMPLATE#}/${PATH_FOO}/g

リファレンス読んだらデリミタは / でなくともよかった。(リファレンスはちゃんと読もうな!!!)

This also matches the regular expression regexp, but allows one to use a different delimiter than /. This is particularly useful if the regexp itself contains a lot of slashes, since it avoids the tedious escaping of every /. If regexp itself includes any delimiter characters, each must be escaped by a backslash (\).

シェルりょく が 1 あがった!

www.gnu.org