首页 > 解决方案 > sed 使用读取命令初始化多个单词字符串

问题描述

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

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

跑步:

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”。

谢谢各位。

标签: sed

解决方案


像这样的双引号变量:

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

更安全:

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

推荐阅读