【发布时间】:2011-12-22 08:51:21
【问题描述】:
我在我的 django 应用程序中重命名了一些东西,我想递归地搜索和替换所有模板中的标签。我尝试使用 find 和 sed 来做到这一点。
find . -name *.html -exec sed -i 's/\{\{\s*oldtag\s*\}\}/{{ newtag }}/g' {} \;
我收到此错误。
sed: -e expression #1, char 44: Invalid preceding regular expression
好的,所以我尝试了很多不同的方法来让它发挥作用。我尝试对花括号进行转义和双重转义。我尝试使用 [ \t] 而不是 \s。似乎没有任何效果。有些组合不会出错,但它们也不会找到或替换任何东西。更糟糕的是有时我会遇到这个错误。
find: paths must precede expression: index.html
路径如何在表达式之前? .是路径,它紧跟在 find 命令之后。它在所有表达式之前。
【问题讨论】:
-
您是否尝试过使用管道而不是
-exec来简化此操作?我不是find或sed专家,但我会让sed处理一个文件,然后使用管道传递其余文件。
标签: regex django bash sed find