sed包含bash脚本

时间:2016-05-18 23:48:57

标签: bash sed

我尝试使用以下行替换html文件中的某些网址:

quote="\""
$(cd "$tutorials_dir_ios" && `sed -i '' 's#.png?version=.*$quote#.png#$quote#g' *.html`)

所以这应该匹配像

这样的网址
someimage.png?version=123&some=thing"

并替换.png之后的部分直到"发生(我需要保持"作为标签在html中关闭):

someimage.png"

但我得到了:

sed: 1: "s#.png?version=.*$quote ...": bad flag in substitute command: '$'

我尝试了一些变体,也使用\ x22作为双引号。这也引发了:

sed: 1: "s#.png?version=.*\x22#. ...": bad flag in substitute command: '\'

我应该提一下,我正在运行OS X,其中sed的行为略有不同。

在bash脚本中使用sed使用单引号的正确方法是什么?在shell中使用"当然是有效的。

更新

同时使用双引号修复。但这也行不通:

$(cd "$tutorials_dir_ios" && `sed -i '' "s#.png?version=.*\"#.png#\"#g" *.html`)

给出

sed: 1: "s#.png?version=.*"#.png ...": bad flag in substitute command: '"'

0 个答案:

没有答案