【发布时间】:2011-07-04 03:06:36
【问题描述】:
我想通过 awk 计算表中的所有记录,但 NR 打印所有记录的记录号而不是总计数。我什至尝试过:
NF==4,count++{print count}
但它不能正常工作 如何通过 awk 做到这一点?
【问题讨论】:
标签: awk
我想通过 awk 计算表中的所有记录,但 NR 打印所有记录的记录号而不是总计数。我什至尝试过:
NF==4,count++{print count}
但它不能正常工作 如何通过 awk 做到这一点?
【问题讨论】:
标签: awk
请显示您的文件样本以及您下次要对它做什么(显示所需的输出)。只是猜测你想要什么,
awk 'NF==4{count++} END {print count}' file
记录总数以NR表示。
awk 'END{print NR}' file1 file2
当前的记录总数用 FNR 表示。
awk 'END{print FNR}' file
【讨论】:
NR,所以结果不会令人困惑。如果您想要每个文件的计数:awk 'FILENAME != prevfn {print prevfn, prevc} {prevfn = FILENAME; prevc = FNR} END {print prevfn, prevc}' file*
我猜你的意思是总行数。通常,您应该为此使用wc -l <filename>。
如果您想使用 awk 执行此操作,请使用
awk '{print NR}' | tail -1
如果你只想使用 awk,那么做
awk 'BEGIN{i=0}{i++;}END{print i}' <filename>
【讨论】:
wc -l [file] 显示换行数,而不是行数。它将报告一个比实际行数小一点的数字。 @kurumi 是对的。
grep -c 给出匹配记录的计数
【讨论】: