2013-02-26 110 views
1

一条线在那里桑达:删除多变量

sed -i '/str/d' /file 

但对于多变量简单等同?

或者,我可以只用下面

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

回答

3

使用

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

的报价在子周围$var是用于插入换行符重要。否则$var将全部在一条线上。

+0

哦,是的。我错过了这一点。 'var = $(...)'和'var ='...'之间是否有区别(我取而代之,因为那里的消息格式化)? – Torrius 2013-02-26 21:43:25

+0

反引号和'$()'符号之间没有区别..我知道..只是后者更清晰 – 2013-02-26 21:45:56

+0

是的有差异。男人bash。 – 2013-02-26 22:16:23

2

你不需要SED,回声和管道只是在bash操纵的字符串:

$ echo "$var" 
foo 
str 
bar 

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

$ echo "$var"   
foo 
bar 

人是bash。