sed使用用read命令初始化的多个单词字符串

时间:2018-11-29 18:11:36

标签: sed

我有一个名为file.conf的文件,其中包含:

这是配置文本,这是要更改的WORD。

运行:

sed -i 's/WORD/"ONE TWO"/g' file.conf 

我将修改file.conf:

这是配置文本,这是要更改的“两个”。

现在,如果我编写脚本,则使用以下命令:

read -p 'word to change' TEXT -> "ONE TWO"
echo $TEXT -> "ONE TWO" 
sed -i 's/WORD/'$TEXT'/g' file.conf

它不适用于错误消息:

sed: -e expression #1, char 11: unterminated `s' command

file.conf在这种情况下不会被修改。

但是如果我只读一个没有空格的单词$ TEXT,它就可以工作:例如“ ONE”。

感谢乡亲。

1 个答案:

答案 0 :(得分:1)

像这样的双引号变量:

sed -i 's/WORD/'"$TEXT"'/g' file.conf

更安全:

sed -i 's/WORD/'"${TEXT}"'/g' file.conf