【发布时间】:2020-04-08 06:23:22
【问题描述】:
假设有一个由几行组成的 example1.txt 文件。
item item item
A B C
100 20 2
100 22 3
100 23 4
101 26 2
102 28 2
103 29 3
103 30 2
103 32 2
104 33 2
104 34 2
104 35 2
104 36 3
我想执行几个命令来过滤掉 txt 文件并添加更多列。
首先,我想在 C 项等于 2 时应用条件。使用 awk 命令我可以通过以下方式做到这一点。
因此返回的文本文件是:
awk '$3 == 2 { print $1 "\t" $2 "\t" $3} ' example1.txt > example2.txt
item item item
A B C
100 20 2
101 26 2
102 28 2
103 30 2
103 32 2
104 33 2
104 34 2
104 35 2
现在我要数两件事:
我想计算第 1 列中的总唯一数。
For example, in the above case example2.txt, it would be:
(100,101,102,103,104) = 5
我想添加重复列 A 编号并将其添加到新列中。
我想要这样的:
item item item item
A B C D
100 20 2 1
101 26 2 1
102 28 2 1
103 30 2 2
103 32 2 2
104 33 2 3
104 34 2 3
104 35 2 3
~
Item D 列(第 4 列)上方,第 1 行是 1,因为它没有任何重复。但在第 4 行,它是 2,因为 103 重复了两次。因此,我在第 4 列和第 5 列中添加了 2。同样,第 4 项中的最后三列是 3,因为在这三列中,项 A 重复了 3 次。
【问题讨论】:
标签: awk