GNU datamash:将字段操作应用于所有列?

GNU datamash:将字段操作应用于所有列?

GNU 数据混合,如何countunique在所有列上运行字段操作(在我的例子中为 )?

例如,在伪代码中:

cat BFCSV.csv | datamash -t',' countunique *

答案1

如果您知道文件的列数,则可以使用 GNU datamash。

seq 100 | paste - - - -
1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16
17  18  19  20
21  22  23  24
25  26  27  28
29  30  31  32
33  34  35  36
37  38  39  40
41  42  43  44
45  46  47  48
49  50  51  52
53  54  55  56
57  58  59  60
61  62  63  64
65  66  67  68
69  70  71  72
73  74  75  76
77  78  79  80
81  82  83  84
85  86  87  88
89  90  91  92
93  94  95  96
97  98  99  100
seq 100 | paste - - - - | datamash countunique 1-4
25  25  25  25
printf "%d\t%d\t%d\t%d\n" 1 2 3 4 | sed 'p;p;p;'
1   2   3   4
1   2   3   4
1   2   3   4
1   2   3   4
printf "%d\t%d\t%d\t%d\n" 1 2 3 4 | sed 'p;p;p;' | datamash countunique 1-4
1   1   1   1

相关内容