我在我的django应用程序中重命名了一些东西,我想递归搜索并替换所有模板中的标签。我试图用find和sed这样做。用sed递归替换django模板标签
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'处理一个文件,然后使用管道传递其余的文件。 – nrabinowitz