我正在使用以下腳本來搜索並替換文件夾中的字符串。我如何修改代碼以讀取 從文本文件中讀取多個$ searchname和$ replacename並替換原始文件夾中的單詞?搜索並替換文件夾shell腳本中的字符串
這裏的文件夾:
main folder: /USERS/path/to/test/
內測試文件夾:
data.txt original/ script.sh tmp/
內原文件夾:
file1.txt file2.php ...........
內數據.TXT:
a1 a2
b1 b2
c1 c2
腳本搜索和替換:
!/bin/bash
FOLDER="/Users/path/to/test/original/"
echo "******************************************"
echo enter word to replace
read searchterm
echo enter word that replaces
read replaceterm
for file in $(grep -l -R $searchterm $FOLDER)
do
sed -e "s/$searchterm/$replaceterm/g" $file > /Users/path/to/test/tmp/tempfile.tmp
mv /Users/path/to/test/tmp/tempfile.tmp $file
echo "Modified: " $file
done
echo " *** All Done! *** "
在此先感謝。
順便說一句,你可以'SED -i -e 「S/$查找/替換$/G」 $ file'做原地的'sed',這意味着沒有必要'> tempfile'並重新命名。 – 2012-01-30 02:44:35
謝謝,但我必須清理創建的備份文件(在-e結尾),我怎樣才能發送修改後的文件到一個新的文件夾?謝謝 – john206 2012-01-30 03:43:18