Sed:删除多行变量中的一行

时间:2013-02-26 21:33:28

标签: string bash sed

是否有简单的等效

sed -i '/str/d' /file

但是对于多行变量?

或者我只能使用

var=`echo "$var" | sed "s/str//"`

2 个答案:

答案 0 :(得分:4)

使用

var=$(echo "$var" | sed '/str/d')

子命令中$var周围的引号对于插入换行符非常重要。否则$var将全部在一行上。

答案 1 :(得分:2)

您不需要使用sed,echo和管道来操作bash中的字符串:

$ echo "$var" 
foo
str
bar

$ var="${var//str
}" 

$ echo "$var"        
foo
bar

man bash。