变量中的变量来替换字符串

时间:2017-11-14 20:11:17

标签: bash sed

所以我想要做的是拿一个文件,其中包含以下参数,我需要全局更改:

level value="something" 

我需要将它们全部改为:

level value="somethingelse"

我的循环和sed脚本出现问题 - 假设我在文件中有这样的值:

level value="ABC"
level value="DEF" 
level value="GHI" 
level value="I DONT KNOW"

我需要所有人成为:

level value="XYZ"

事情是我不知道所有级别值是什么,它们可以是任何东西。因此,为什么我试图将它们标准化为一个级别的值。有没有办法用循环和sed这样做?感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

sed 's/\(level value="\)[^"]*/\1XYZ/' file
当跟随非level value="个字符时,会捕获

"。使用反向引用,输出捕获的字符串,然后输出新值XYZ