sed / bash中的变量替换

时间:2017-10-05 07:29:23

标签: bash unix awk sed

我正在尝试在sed / bash中进行变量替换。

我已经看到此示例可用here,但它不会根据需要替换数据。 $ C_CONF第20行中观察到的值为$RAM,当我希望它为100时。

$C_CONF的第20行是AllowedRAMSpace=SomeValue,我想在运行中更改该值。

这是我创造的技巧,但它是一个非常丑陋和低效的。

 32 for RAM in 100 #80 60 40 20
 33 do  
 34     sudo sed -i -re 's/(AllowedRAMSpace=)[^=]*$/\1"'"$RAM"'"/' $C_CONF
 35     sudo sed -i '20s/"//' $C_CONF
 36     sudo sed -i '20s/"//' $C_CONF 
 37 done

另一种方式是什么?

1 个答案:

答案 0 :(得分:1)

尝试使用awk

awk 'BEGIN{RAM=100}NR==20{print gensub(/(AllowedRAMSpace=)([^=].*$)/,"\\1"RAM,"g", $0)}' filename