我必须在文件中的列。一个是值的名称,另一个是相应的值。我想更改分配给特定名称的值。所以我有 infile中:
TB 10
Abs(M_1) 100
我试过这个(不成功地)改变它:
M1_0=$(grep "Abs(M_1)" $infile)
awk '{ gsub("$M1_0", "Abs(M_1) $M1") };{print}' $infile > $infile.new
mv $infile.new $infile
我已经定义M1每次迭代都不同。我没有得到任何错误,但文件值没有变化。我也试过了几十种sed配置。我不明白我做错了什么。
答案 0 :(得分:0)
改为使用sed
:
创建新文件:
sed "s/$M1_0/Abs(M_1) $M1/g" $infile > $infile.new
保存在同一个文件中(这将从您的脚本中删除mv
步骤):
sed -i "s/$M1_0/Abs(M_1) $M1/g" $infile