前陣子遇到到公司伺服器要移轉的關係,
很多PHP網頁連結資料庫的帳號密碼設定都要改,
因為實在是太多了一個個進去改太累人。
原本要寫一個script去跑的但中途發現一個好用的指令: xargs
它的作用是將前一個指令輸出的結果做為後面指令的參數。
例如我有一大堆的網頁,
假設正好這些網頁的資料庫設定都存放在config_db.php這個檔案裡,
那麼我想要一次改掉所有config_db.php內存的root帳號改成loki (這裡先假定所有的config_db.php格式都統一),
指令可以這麼下:
[cc no_cc=”1″]find . -name ‘config_db.php’ | xargs sed -i ‘s/\”root\”/\”loki\”/g'[/cc]
雖然一般使用find會一次把所有結果列出來,
但xargs可以一項項丟給後面的指令用,
如此就能達到我想要的效果。