【发布时间】:2013-07-06 06:28:12
【问题描述】:
我想运行一个简单的命令,将绝对路径替换为 CSS 文件中的相对路径,如下所示:
sed -i 's/\/fonts/../fonts/' /Users/sergeybasharov/WebstormProjects/snap/compiled/Content/stylesheets/style.css
它抛出这个
sed: 1: "/Users/sergeybasharov/W ...": bad flag in substitute command: 'b'
这个简单的脚本有什么问题?
【问题讨论】:
-
您的命令中没有
b,它一定不是您实际输入的内容。请粘贴实际脚本。 -
是的,真的,只是使用了一个更短的等价物:)。我已更新为完整版本。
-
您的引用存在一些问题,导致文件名包含在替代命令中,但我在您引用的内容中看不到它。不过,您缺少反斜杠。
-
如果您在文件名之前有
-e或者您在开头缺少s/\fonts命令,则会发生您报告的错误。它将文件名视为 sed 指令。 -
我已经阅读了
man的 sed。那里写着,在 -i 之后我应该使用用于制作备份文件的扩展名。如果提供了空字符串,则不会创建备份。所以我把它写成-i ''并且成功了。
标签: macos command-line sed