2014-07-08 23 views
0

我有大約100個文件,其中有我的名字,RAHUL。我希望它替換爲另一個術語RAHUL2。我有一個包含文件列表的文件,我想在sed中讀取它以執行更改。我將如何使用sed shell腳本替換文件列表中的模式

文件:

C:/desktop/file1.txt 
C:/desktop/rahul/file1.txt 
C:/desktop/rahul/file3.txt 
C:/desktop/rahul/file4.txt 
C:/desktop/rahul/file6.txt 
C:/desktop/rahul/file8.txt 
C:/desktop/rahul/file9.txt 

,並在每個文件中的數據,我想RAHUL2

回答

0

更換期限RAHUL的所有次數我假設你正在使用Windows上一些Cygwin環境,因爲你有sed。然後你可以使用find列出所有的文件和對它們執行sed

find C:/desktop -type f -name 'file*.txt' -exec sed -i 's/RAHUL/RAHUL2/g' {} \; 

如果您正在使用sed -i,但不知道是否該命令的工作已經請了原始文件的備份。這是因爲sed -i會覆蓋原始文件。你被警告了。

0

hek2mgl的答案是好的,如果你想搜索C:/desktop目錄中匹配file*.txt模式的所有文件。

現在,你已經有包含的文件進行編輯的列表中的文件,這裏是另一種方式來進行:

while read FILE ; do sed -i 's/RAHUL/RAHUL2/g' $FILE ; done < files_to_edit.txt 

read命令將陸續讀你輸入一行。輸入爲files_to_edit.txt文件,如輸入重定向運算符<所示。

備註約-i選項仍然有效:將編輯文件的地方,所以要備份,或者至少在幾個文件,首先運行它(潛在的不-i選項,只是爲了檢查輸出是什麼)。