加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

sed – Unix Shell脚本在子文件夹中的特定文件中查找和替换字符

发布时间:2020-12-14 01:27:53 所属栏目:Linux 来源:网络整理
导读:我想仅在文件夹的子文件夹中存在的xml文件中用“选择最佳答案”替换字符串“解决问题”.我编写了一个脚本来帮助我做到这一点,但有两个问题 它还替换了脚本的内容 它替换子文件夹的所有文件中的文本(但我只想更改xml) 如果特定子文件夹和文件中出现文本不匹配
我想仅在文件夹的子文件夹中存在的xml文件中用“选择最佳答案”替换字符串“解决问题”.我编写了一个脚本来帮助我做到这一点,但有两个问题

>它还替换了脚本的内容
>它替换子文件夹的所有文件中的文本(但我只想更改xml)
>如果特定子文件夹和文件中出现文本不匹配,我想显示错误消息(最好是文本输出).

那么请你帮我修改我现有的脚本,以便我可以解决上述3个问题.

我的脚本是:

find -type f | xargs sed -i“s /解决问题/选择最佳答案/ g”

解决方法

使用bash和sed:

search='Solve the problem'
replace='Choose the best answer'
for file in `find -name '*.xml'`; do
  grep "$search" $file &> /dev/null
  if [ $? -ne 0 ]; then
    echo "Search string not found in $file!"
  else
    sed -i "s/$search/$replace/" $file
  fi  
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读