我试图通过bash脚本(版本3.2)修改文件的行,并尝试了很多选项,但它们都给出了“错误的替换错误”。
例如,我从$ filename(先前定义的变量)
中提取行line=$(sed -n 24p $filename)
echo ${$line/coordinateIndex="0"/coordinateIndex="124"}
我正在尝试将coordinateIndex替换为其他一些数字。这些数字在文件中的“”之间,我需要保留该格式。
任何帮助表示感谢;谢谢!
答案 0 :(得分:2)
echo ${$line/coordinateIndex="0"/coordinateIndex="124"}
不应该有$ inside:
echo ${line/coordinateIndex="0"/coordinateIndex="124"}
您可能还需要正确引用它以正确匹配双引号。
echo ${line/coordinateIndex=\"0\"/coordinateIndex="124"}
最好将参数括在双引号中,以防止使用IFS值和意外路径名扩展进行单词拆分:
echo "${line/coordinateIndex=\"0\"/coordinateIndex="124"}"
查看有关Parameter Expansion in the Bash Manual的使用情况的详细信息。