sed模式匹配如果遇到空间则删除文件内容

时间:2015-12-07 21:53:41

标签: regex shell sed

我正在使用sed将我的配置文件中第一次出现的@@ID@@替换为用户输入的文本。使用的命令是:

sed '0,/\@\@ID\@\@/{s/\@\@ID\@\@/'$INPUT'/}' $config_file > $temp_file
mv $temp_file $config_file

其中INPUT是用户输入的值。 如果INPUT中没有空格,则上述语句可以正常运行,并将@@ID@@替换为INPUT中的值。但是当用户输入由空格分隔的文本时,配置文件中的所有内容都将被删除。这是SCARY!

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

试试这行:

 sed "0,/@@ID@@/{s/@@ID@@/$INPUT/}" file