到目前为止,我已尝试在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