我在我的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