我如何在新列中打印 KSH 中 1 列的总数?

How can i print in a new column the total count for 1 column in KSH?

我正在尝试在不删除其他列的情况下在 txt 文件中添加一个包含总计数的新列,已经在 Whosebug 中找到 post 但是

cut -f1 test.txt | uniq -c | join -2 2 test.txt -

对我不起作用,post 中的其他选项也不适用,我的意思是 post 没有回答我的问题,有人可以帮忙吗?

test.txt:

Apple_1   1      300
Apple_2   1      500
Apple_2   500    1500
Apple_2   1500   2450
Apple_3   1      1250
Apple_3   1250   2000

预期输出:

Apple_1   1      300    1
Apple_2   1      500    3
Apple_2   500    1500   3
Apple_2   1500   2450   3
Apple_3   1      1250   2
Apple_3   1250   2000   2

已经尝试过一些正则表达式和 awk,例如:

awk '{count[]++} END {for (word in count) print word, count[word]}' file

awk '{ print [=13=] "\t" ++count[] }'

您需要遍历文件两次,一次计算计数,第二次打印所有行并附加计数。

awk 'FNR == NR {count[]++; next}
     {print [=10=] "\t" count[]}' file file

FNR == NR读取第一个文件时为真