【发布时间】:2014-04-14 23:07:29
【问题描述】:
到目前为止,我已经尝试在 unix 脚本下根据搜索附加文件的内容。一切都很好。但是,如果我多次运行相同的以下脚本,perl 命令会继续附加到文件中。
searchArr=(test1 test2 test3)
replaceArr=(somestring1 somestring2 somestring3)
a=`echo ${#searchArr[@]}`
echo $a
for ((i=0;i<$a;i++))
do
searchValue=`echo ${searchArr[i]}`
replaceValue=`echo ${replaceArr[i]}`
for file in `find . -name \* -print`; do
grep "$searchValue" $file &> /dev/null
if [ $? -ne 0 ]; then
echo "Search string not found in $file!"
else
perl -p -i -e "s/$searchValue/$replaceValue/g" $file
echo $file "Replace string Success!"
fi
done
done
电流输出:-
如果运行不止一次,它将继续像这样附加。 例如,如果运行两次,它将追加两次
somestring1somestring1test1
somestring2somestring2test2
somestring3somestring3test3
需要的输出:- 不管运行多少次
somestring1test1
somestring2test2
somestring3test3
【问题讨论】: