问题
如何排除以空格字符开头的行,并且该行没有其他内容?使用 awk,我想打印 line Need to print
,但它也在打印空白行。我怎样才能排除它?
脚本:test.awk
$0 !~/^start|^#/ {
print "Result : %s",$0
}
数据
# test
start
Need to print
结果
Result : %s
Result : %s Need to print
如何排除以空格字符开头的行,并且该行没有其他内容?使用 awk,我想打印 line Need to print
,但它也在打印空白行。我怎样才能排除它?
$0 !~/^start|^#/ {
print "Result : %s",$0
}
# test
start
Need to print
Result : %s
Result : %s Need to print
您实际上并不是在询问以空格开头的行,而是在询问如何丢弃空白行。务实地说,空白行没有字段,因此您可以使用内置的NF变量来丢弃至少没有一个字段的行。例如:
$ awk 'NF > 0 && !/^(start|#)/ {print "Result: " $0}' /tmp/corpus
Result: Need to print
您可以使用:
awk '/^[^[:space:]]/{print "Result : " $0}'
的使用[^[:space:]]
确保在打印的每一行中至少有一个非空格字符。