我使用AWK时很新。我刚刚发现了FNR
变量。我只是想知道在处理文件之前是否有可能获得的总记录数?
所以文件末尾的FNR
。
我只是需要它来做那样的事情
awk 'FNR<TOTALRECORDS-4 {print}'
为了删除文件的最后4行。 感谢
答案 0 :(得分:1)
要从文件中删除最后4行,您只需使用head
:
head -n -4 somefile > outputfile
答案 1 :(得分:1)
如果您只想打印文件的最后4行,请使用其他工具。但是,如果您正在使用awk进行其他处理并需要将其合并,只需将行存储在缓冲区中并根据需要进行打印。也就是说,存储最近的4行,并在获得换行符时在缓冲区中打印最后一行。例如:
awk 'NR>4 { print a[i%4]} {a[i++%4]=$0}' input
这会在数组a
中保留4行。如果我们位于文件的前4行,则不执行任何操作,只能将行存储在a
中。如果我们在大于4的行上,你要做的第一件事就是打印4行(在a
中存储在索引i%4
处)你可以放置操作$0
的命令这两个行动声明是必要的。