2013-07-03 101 views
1

我需要使用sed命令删除没有值的变量。删除所有没有值的行

输入:

a: x sdvsv rhrh 
b: 
c: sdbbb 
d: 

输出:

a: x sdvsv rhrh 
c: sdbbb 
+0

为什么你会尝试将行的开头匹配在一行的中间? –

回答

3
sed '/:\s*$/d' 

工作为你的榜样

更普遍的方式:

sed '/^[^:]\+:\s*$/d' 
+0

我不知道'\ s'快捷方式是指'sed'中的空格。很高兴知道,** + 1 ** – Birei

0
sed -e '/^[^:]*:\s*$/d' a.txt 

匹配所有字符,随后是 '',后跟任意数量的空格和行的末尾。

+0

适用于示例文本。但是,如果以':'结尾的非空值,您的命令也会删除该条目。例如'c:sdbbb:' – Kent

+0

@kent编辑:-)谢谢 – Scharron

0

sed -E '/^\w+:\s*$/d'

匹配任何一个非空字后跟一个冒号和空格组成的线,并删除它。

2

随着awk

awk 'NF>1' inputFile