2013-04-20 82 views
0

的sed我有一个命令,其输出是:删除空字符串在KSH

"" 
"D" 
"M" 
"N" 

我想删除第一个空字符串,这样做的:

<command> |sed 's/^""$/d' 

但外壳告诉我:

sed: 0602-404 Function s/^""$/d cannot be parsed. 

所以,我应该用什么sed命令删除了双引号空字符串?

回答

1

试试这个,你错过了一个报价,你不应该使用s///形式:

<command> | sed '/^""$/d' 

从你的意见,如果你需要把只有1号线:

<command> | sed '1{/^""$/d}' 

d修饰符只允许以/regex/的形式存在,不能以s///替代形式存在。

+0

它的工作原理!非常感谢!顺便说一句,有没有办法将这个sed表达式仅应用于第一行输出? – 2013-04-20 21:49:29

+1

看到我编辑的文章 – 2013-04-21 10:04:27

+0

它删除所有具有空字符串的行,仅次于只具有空字符串的第一行 – NeronLeVelu 2014-03-06 16:12:19

0
sed -n 'H 
$ {x;s/""\n/²/1;s/.*²//;p;}' YourFile 

使用临时标志²的(或任何其他不使用/特殊字符的正则表达式)