尋找
// 使用 shell 在多個檔案中尋找
find . -type f | xargs grep flash
說明:
找出前目錄及其子目錄下的檔案中含有 flash 的檔案
//
重點記錄下 xargs 命令:
xargs 在標準輸入上取得參數列表、一行一個,再將他們以適當的大小組起來(由主機的 ARG_MAX 值決定)傳給另一個命令,此命令在作為 xargs 的參數.
ARG_MAX 值查看方法:
getconf ARG_MAX
//
//
在多個檔案中尋找使用命令替換也可以完成
grep flash $( find . -type f)
說明:
$() 是命令替換,括弧內是 shell 命令;shell 執行括弧內的命令並將整個 $(...) 替換為 命令的輸出
命令替換的形式有兩種,一種是 $(),另一種是使用兩個反引號 `find . -type f`
替換
// 多個檔案中替換 - sed
為了保證不該替換的不被替換,先在檔案中尋找一下哪些會被替換
find -type f ! -path '*.svn*' | xargs sed -n '/Ookong inc/p'
說明:
1, find 首先過濾掉 .svn 目錄及其子目錄
2, xargs 傳遞參數給 sed 命令
3, sed 執行尋找, 只列印符合要求的行
//
// 替換
find -type f ! -path '*.svn*' | xargs sed -i 's/Ookong inc/Ookong Ltd. Co./g'
說明:
1, sed 的 i 選項直接在檔案中替換,而不是把替換結果列印出來
2, g 對每行中所有匹配執行替換
//
//
另外:一個 perl 多檔案尋找的程式: ack
-- 顯示所在的行號及所在的檔案
VIM尋找替換(詳見http://www.cnblogs.com/mo-beifeng/archive/2011/10/02/2198303.html)
其他替換方法:
一種是Mahuinan法,一種是Sumly法,一種是30T法分別如下: