2009-08-12 28 views
0

我有這個輸入文件(空間是在該行的兩個元素的分離,否則只有一個元素是)使用awk來獲得下一個領域

a:1 
a:1 123 
b:2 345 
c:3 456 
d:4 
d:4 456 
.. 
.. 

我感興趣的輸出是

a:1 123 
d:4 456 

即具有前面字段只有一個字段的行。

+0

如果你有兩個(或更多)連續行只有一個領域? – 2009-08-12 16:13:46

回答

1

試試這個:

{ if (NF == 1) { getline; print; next; } } 
+2

或只是:NF == 1 {getline;打印} – 2009-08-12 16:13:13

+0

我永遠不會習慣AWK中的條件表單:) – 2009-08-13 07:41:34

+0

它其實很簡單:pattern {action} pattern {action} ...對。如果模式匹配執行操作。如果省略了模式,請始終執行該操作。如果省略了操作,則默認操作是打印當前行。 – 2009-08-13 13:59:31