我正在使用以下脚本来搜索并替换文件夹中的字符串。我如何修改代码以读取 从文本文件中读取多个$ 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