noo*_*lag 2 linux bash replace sed find
我使用这个命令要经过的所有文件,目录和子目录更改任何提及的oldurl.com
到newurl.org
:
find . -type f -name '*.php' -exec sed -i 's|oldurl.com|newurl.org|g' {} +
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是,我需要被改动排除三个子目录:/cache
,/archive
并/etc
在这些路径与上面的命令改变网址,打破其他脚本.
没有太多运气找到答案......它甚至可能吗?
非常感谢任何建议/帮助.
使用查找-not
选项:
find . -type f -name '*.php' -not \( -path './etc/*' -o -path './cache/*' -o -path './archive/*' \) -exec sed -i 's|oldurl.com|newurl.org|g' {} \;
Run Code Online (Sandbox Code Playgroud)