For Loop 进入 Sed 迭代器擦除整个文件
For Loop into Sed iterator wiping entire file
我可以 `sed -i 's/a/ONE/g' file.xml
没有问题,但尝试 运行 通过脚本并传递数组变量会擦除整个文件。
declare -a arr=("a" "b")
declare -a ray=("ONE" "TWO")
for i in "${!arr[@]}"
do
sed -n -i 's/${arr[$i]}/${ray[$i]}/g' $file
done
预期输出:
我应该将 a 和 b 的所有实例分别替换为一个和两个。
就像我说的那样,我可以使用
从命令行完成此操作
sed -i 's/a/ONE/g' file.xml
什么给了?
编辑:
尝试在 sed
命令中使用双引号进行修复,但没有成功。
我能够弄清楚问题是什么,但不完全确定问题的原因。
-n
“禁止自动打印模式 Space”出于某种原因破坏了该命令。如果有人知道为什么会非常感激!
我可以 `sed -i 's/a/ONE/g' file.xml 没有问题,但尝试 运行 通过脚本并传递数组变量会擦除整个文件。
declare -a arr=("a" "b")
declare -a ray=("ONE" "TWO")
for i in "${!arr[@]}"
do
sed -n -i 's/${arr[$i]}/${ray[$i]}/g' $file
done
预期输出:
我应该将 a 和 b 的所有实例分别替换为一个和两个。
就像我说的那样,我可以使用
从命令行完成此操作sed -i 's/a/ONE/g' file.xml
什么给了?
编辑:
尝试在 sed
命令中使用双引号进行修复,但没有成功。
我能够弄清楚问题是什么,但不完全确定问题的原因。
-n
“禁止自动打印模式 Space”出于某种原因破坏了该命令。如果有人知道为什么会非常感激!