在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