【发布时间】:2011-05-13 23:08:21
【问题描述】:
我的任务是获取网站文件的目录,包括 html、css 和非文本图像文件,并将所有图像路径从相对路径更改为通用 cdn 路径。这是在mac上。
我的出发点是这样的:
sed -i '' 's/old_link/new_link/g' *
但我希望它只作用于 css、html 文件,并通过任何子目录进行递归。
谢谢
【问题讨论】:
我的任务是获取网站文件的目录,包括 html、css 和非文本图像文件,并将所有图像路径从相对路径更改为通用 cdn 路径。这是在mac上。
我的出发点是这样的:
sed -i '' 's/old_link/new_link/g' *
但我希望它只作用于 css、html 文件,并通过任何子目录进行递归。
谢谢
【问题讨论】:
尝试使用find。有点像:
find . -name *css -exec sed -i '' 's/old_link/new_link/g' {} ';'
将在您当前目录及其下方找到所有 css 文件,并将每个文件传递给 sed。 {} 代表 find 找到的每个文件的名称(和位置)。不要省略结尾的引号;
然后重复 html 文件。
与以往一样,有关语法的更多细节,请咨询 man,或 google 查找文档。
【讨论】:
-o 一次性处理两种文件类型:find . -name "*.css" -o -name "*.html" ...