/./
正在删除第一个条件{ 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
了解字符串是一个正则表达式。 !
是标准否定。