【问题标题】:How to append string in the contents of files on the basis of search如何在搜索的基础上在文件内容中附加字符串
【发布时间】: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

【问题讨论】:

    标签: linux unix


    【解决方案1】:

    为您的 sed 搜索模式添加单词边界。

    Beginning and end of words in sed and grep

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 2021-03-26
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      相关资源
      最近更新 更多