如何用awk排除空行?

时间:2016-02-18 14:24:56

标签: awk blank-line

问题

如何排除以空格字符开头的行,并且该行没有其他内容?使用awk,我想打印行Need to print,但它也打印空白行。我该如何排除它?

脚本:test.awk

$0 !~/^start|^#/ {
print "Result : %s",$0
}

数据

# test

start
Need to print

结果

Result : %s 
Result : %s Need to print

2 个答案:

答案 0 :(得分:2)

使用 NF 变量

你并不是真的在询问以空格开头的行,而是询问如何丢弃空白行。实际上,空白行没有字段,因此您可以使用内置的 NF 变量来丢弃不具有至少一个字段的行。例如:

Project | Reporter | Fixer  | Status    
--------+----------+--------+--------
P1      | Fernando | Janith | closed   
P1      | hasitha  | Nimna  | Fixed    
p1      | Amal     | Nimna  | Fixed    
P2      | Nimal    | Amal   | Fixed    
P3      | Kamal    | Nimal  | Fixed    
P4      | Andrew   | Amal   | Fixed

答案 1 :(得分:1)

您可以使用:

[^[:space:]]

使用{{1}}可确保每行中至少有一个非空格字符可以打印。