如何在Bash脚本中使用sed更改字符串

时间:2019-02-06 11:25:48

标签: bash sed

我的文件带有参数:

key1: 'testValue'

我想根据参数更改key1testValue)的值。

此代码正在使用硬编码的值:

sed -i "s/\(key1:\).*/\1 'newValue'/"  ./myFile

我尝试使用动态值:

MY_NEW_VALUE= testNewValue
sed -i "s/\(key1:\).*/\1 ${MY_NEW_VALUE}/" ./myFile

我得到一个错误:

sed: -e expression #1, char 32: unknown option to `s'

1 个答案:

答案 0 :(得分:0)

在这里工作:

skiprows=4

编辑:更改行:

root@foo:~# cat /tmp/c
key1: 'testValue'

root@foo:~# MY_NEW_VALUE="testNewValue"; cat /tmp/c | sed -s "s/\(key1:\).*/\1 '${MY_NEW_VALUE}'/"
key1: 'testNewValue'

MY_NEW_VALUE= testNewValue