我正在尝试在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
另一种方式是什么?
答案 0 :(得分:1)
尝试使用awk
awk 'BEGIN{RAM=100}NR==20{print gensub(/(AllowedRAMSpace=)([^=].*$)/,"\\1"RAM,"g", $0)}' filename