我正在尝试在bash脚本中使用awk
检查文件是否为空。一个文件被视为空的条件是:如果一个文件只有第一行带有字段值,然后跟着------
(后面再没有别的内容),则它被视为空。
这是那个特殊文件的结构:
file.txt
col1 col2 col3 col4 col5
------
到目前为止,这是我所拥有的:
awk '
{
if (NR > 2)
print "NOT EMPTY"
else
print "EMPTY"
}
' file.txt
我需要的输出是:
EMPTY
我得到的空值是:
EMPTY
EMPTY
我该如何仅输出
EMPTY
?我知道这可能非常简单,但我找不到任何方法。谢谢!如果需要进一步解释,请告诉我。
编辑:此外,如果在file.txt中添加了额外的空行,则会为每个额外的行打印
EMPTY
。是否有更通用的方法来解决这个问题?
{ -> END{
将会有所帮助。 - Kent