我想仅在文件夹的子文件夹中存在的 xml 文件中将字符串“解决问题”替换为“选择最佳答案”。我已经编译了一个脚本来帮助我做到这一点,但是有两个问题
- 它还替换了脚本的内容
- 它替换了子文件夹的所有文件中的文本(但我只想更改 xml)
- 如果文本不匹配发生在特定的子文件夹和文件中,我想显示错误消息(最好是文本输出)。
所以你能帮我修改我现有的脚本,这样我就可以解决上述 3 个问题。
我的脚本是:
查找-type f | xargs sed -i "s/解决问题/选择最佳答案/g"
我想仅在文件夹的子文件夹中存在的 xml 文件中将字符串“解决问题”替换为“选择最佳答案”。我已经编译了一个脚本来帮助我做到这一点,但是有两个问题
所以你能帮我修改我现有的脚本,这样我就可以解决上述 3 个问题。
我的脚本是:
查找-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
find -type f -name "*.xml" | xargs sed -i "s/Solve the problem/Choose the best answer/g"
不确定我是否理解问题 3。