Shell-Script
如何在目錄及其子目錄中的所有 php 文件中搜尋和替換文本
我正在尋找一個 shell 腳本,它遞歸地遍歷
.php
目錄中的所有文件並執行特定文本模式的搜尋和替換。搜尋模式很長(> 5000 個字元),因此為方便起見,可能會將其保存在另一個文本文件中。它還包含正斜杠字元。
編輯:我想我想出了第一部分:
find . -name "*.php"
但是我如何在這些文件中搜尋和替換?
它可以通過 sed 和 xargs 的良好組合輕鬆完成。
find . -name "*.php" | xargs -n 1 echo
將向您展示 xargs 的力量。
之後,在範例文件上,您可以使用就地更改 (-i) 或備份更改 (-i.bak) 來測試正則表達式。如果您的模式/替換已經有一個,您也可以使用其他字元替換“/”。
最後,它應該看起來像:
pattern=`cat /path/to/pattern`; replacement=`cat /path/to/replacement` find . -name "*.php" | xargs -n 1 sed -i -e "s|$pattern|$replacement|g"