2013-07-03 81 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