Linux 如何在搜索的基础上在文件内容中追加字符串

Linux 如何在搜索的基础上在文件内容中追加字符串,linux,unix,Linux,Unix,到目前为止,我已经尝试使用下面的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[

到目前为止,我已经尝试使用下面的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
所需产出:- 不管它跑了多少次

somestring1test1
somestring2test2
somestring3test3

将单词边界添加到sed搜索模式中

somestring1test1
somestring2test2
somestring3test3