我尝试使用以下行替换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: '"'