AWK删除空白行

/./正在删除第一个条件{ print "a"$0 }空白行,我将如何确保脚本删除每个条件的空白行?

 awk -F, '/./ { print "a"$0 } NR!=1 { print "b"$0 } { print "c"$0 } END { print "d"$0 }' MyFile 

在第一个条件中加入以下条件,并用if语句检查它们,如下所示:

 awk -F, ' /./ { print "a"$0; if (NR!=1) { print "b"$0 } print "c"$0 } END { print "d"$0 } ' MyFile 

Awk命令从文件中删除空行:

 awk 'NF > 0' filename 

如果你想忽略所有空行,把它放在脚本的开头

 /^$/ {next} 

已经提出的答案的简短形式可以如下:

 awk NF file 

任何awk脚本都遵循语法condition {statement} 。 如果语句块不存在, awk将打印整个记录(行),以防condition不为零。

awk NF变量表示行中的字段数。 所以当行不为空时, NF保持一个正值,触发默认的awk动作(打印整行)。 在空行的情况下, NF是零,条件不满足,所以awk什么都不做。


要么

 awk '!/^$/' file 

^$是一个空行的正则表达式。 2 /需要让awk了解字符串是一个正则表达式。 ! 是标准否定。