【发布时间】:2023-03-26 15:25:01
【问题描述】:
根据我收到的here 的有用答案,我创建了以下脚本,将其命名为 convert_image_paths.command,将其放入我 Mac 上的网站文件夹中并双击它。
#!/bin/bash
# This script will operate on valid relative image paths at this level and one sub-level down, across .html and .css files.
find . -name "*.css" -o -name "*.html" -exec sed -i '' 's/\.\.\/images\//images\//g' {} ';'
find . -name "*.css" -o -name "*.html" -exec sed -i '' 's/images\//http:\/\/mycdn\.com\/images\//g' {} ';'
不幸的是,它没有将网站中的相对图像路径更改为新的cdn url,而是
- 加倍网址:http://mycdn.com/http://mycdn.com/images/myimage.png
- 对我机器上的每个 html/css 文件都这样做了
所以我的问题是 a) 是否有白痴标签和 b) 如何修复此脚本?
编辑:
让我澄清一下我的意图: 我想将更改应用于所有具有相对 url 形式的图像路径
“图像/{myimagepath}”
或
"../images/{myimagepath}"
【问题讨论】:
-
这就是为什么你使用 -e 进行测试并且只在你知道它有效时才使用 -i 的原因。
-
与
-e没有任何关系。不用-i先运行它;这是告诉 sed 编辑文件而不是将结果打印到标准输出的选项。-e告诉 sed 下一个参数是要执行的 sed 命令。sed -e <expr> <path>完全等价于sed <expr> <path>;它对于运行多个命令非常有用。