可以直接使用shell 下指令快速取代掉文件中的指定字串
find命令的格式:find [-path……] -options [-print -exec -ok]
options 常用的有下選項:
-name:按照名稱查找
-perm:安裝權限所在位置
-prune:不再是目前指定的目錄下查找
-user:檔案屬主來找
-group:文件所在群組來查找
-nogroup:尋找無有效群組的文件
-nouser:尋找無有效屬主的文件
-type:依照檔案類型查找
使用以下 find 指令即可
find . -type f -name '*.php' -exec sed -i "s/replacethis/hahaha/g" {} \;
詳解:
find 搜尋 “.”(目前目錄)下的所有檔案(type = f),並且檔案名稱符合“*.php”的檔案。
將所得到的結果,都使用exec 指令請sed (自動化修改文字檔) 來執行,並直接修改檔案(-i),
“s/aaa/bbb/g”代表使用bbb取代aaa的意思。
大括號“{}”代表前面find找到的文件名
“\;”則代表中止
預設find 會往下搜尋所有檔案夾內的檔案,可以加上搜尋深度來限制只搜尋該層級
find 不遞迴的話,加上深度=1
Ex. -maxdepth 1
MacOS 取代時,sed -i 後面要多一個空字串
find . -type f -name 'user.xml' -exec sed -i "" "s/AA<\/username>/K<\/username>/g" {} \;
才能正常使用
搜尋檔案中字串
find . -name "*.php" -exec grep -H "192.168.10.2" {} \;
這樣可以顯示出來包含“192.168.10.2”字串的檔案