linux - Obtaining UNIQUE VALUE occurrences count in a set of COLUMNS using AWK -


ignoring columns 1 & 2 (only rest of columns); obtain occurrence count of unique values (ignoring odd ones) following set of data.

i have tried:

awk '{ a[$3, $4, $5, $6, $7]++ } end { (b in a) { cnt+=1 } {print cnt}}' file 

i obtain 76 don’t expect value.

>         0 0  >         1 0 0 >         2 0 2 >         3 0 0 6 >         4 0 0 8 >         5 0 0 10 >         6 0 2 14 >         7 0 2 16 >         8 0 0 6 20 >         9 0 0 8 24 >         10 0 0 8 26 >         11 0 0 10 32 >         12 0 0 10 34 >         13 0 2 14 40 >         14 0 2 16 42 >         15 0 0 8 24 48 >         16 0 0 8 24 50 >         17 0 0 8 26 56 >         18 0 0 10 32 60 >         19 0 0 10 34 64 >         20 0 0 10 34 66 >         21 0 2 14 40 72 >         22 0 0 8 24 48 76 >         23 0 0 8 24 50 82 >         24 0 0 8 26 56 88 >         25 0 0 8 26 56 90 >         26 0 0 10 32 60 96 >         27 0 0 10 32 60 98 >         28 0 0 10 34 64 104 >         29 0 0 10 34 64 106 >         30 0 0 10 34 66 112 >         31 0 0 10 34 66 114 >         0 1  >         1 1 2 5 >         2 1 2 >         3 1 2 12 23 19 >         4 1 2 12 23 >         5 1 2 12 >         6 1 2 12 28 >         7 1 2 12 28 36 >         8 1 2 12 30 47 45 >         9 1 2 12 30 47 >         10 1 2 12 30 >         11 1 2 12 30 52 >         12 1 2 12 28 38 >         13 1 2 12 28 38 62 >         14 1 2 12 28 38 62 68 >         15 1 2 12 30 54 75 >         16 1 2 12 30 54 >         17 1 2 12 30 54 78 >         18 1 2 12 30 54 78 84 >         19 1 2 12 30 54 78 84 92 >         20 1 2 12 28 38 62 70 >         21 1 2 12 28 38 62 70 108 >         22 1 2 12 30 54 80 >         23 1 2 12 30 54 78 86 >         24 1 2 12 30 54 78 86 120 >         25 1 2 12 30 54 78 84 94 >         26 1 2 12 30 54 78 84 94 124 >         27 1 2 12 30 54 78 84 92 102 >         28 1 2 12 30 54 78 84 92 102 128 >         29 1 2 12 28 38 62 70 110 >         30 1 2 12 28 38 62 70 110 130 >         31 1 2 12 28 38 62 70 108 116 >         0 2  >         1 2 2 5 >         2 2 2 >         3 2 2 5 6 >         4 2 2 5 6 18 >         5 2 2 5 6 18 22 >         6 2 2 14 >         7 2 2 16 >         8 2 2 5 6 20 >         9 2 2 5 6 20 44 >         10 2 2 5 6 18 26 >         11 2 2 5 6 18 22 32 >         12 2 2 5 6 18 22 32 58 >         13 2 2 14 40 >         14 2 2 16 42 >         15 2 2 5 6 20 44 50 75 >         16 2 2 5 6 20 44 50 >         17 2 2 5 6 18 26 56 >         18 2 2 5 6 18 22 32 60 >         19 2 2 14 40 72 109 101 >         20 2 2 14 40 72 109 >         21 2 2 14 40 72 >         22 2 2 5 6 20 44 50 80 >         23 2 2 5 6 20 44 50 80 118 >         24 2 2 5 6 20 44 50 80 118 120 >         25 2 2 5 6 20 44 50 80 118 120 122 >         26 2 2 14 40 72 109 101 102 127 >         27 2 2 14 40 72 109 101 102 >         28 2 2 14 40 72 109 101 104 >         29 2 2 14 40 72 116 133 131 >         30 2 2 14 40 72 116 133 >         31 2 2 14 40 72 116 >         0 3  >         1 3 0 >         2 3 0 4 >         3 3 0 6 >         4 3 0 6 18 >         5 3 0 6 18 22 >         6 3 0 4 16 37 >         7 3 0 4 16 >         8 3 0 6 20 >         9 3 0 6 18 26 47 >         10 3 0 6 18 26 >         11 3 0 6 18 22 32 >         12 3 0 6 18 22 32 58 >         13 3 0 4 16 42 69 >         14 3 0 4 16 42 >         15 3 0 6 18 26 47 48 >         16 3 0 6 18 26 47 48 74 >         17 3 0 6 18 26 56 >         18 3 0 6 18 22 32 60 >         19 3 0 6 18 22 32 58 64 >         20 3 0 6 18 22 32 58 66 >         21 3 0 6 18 22 32 58 66 108 >         22 3 0 6 18 26 47 48 76 >         23 3 0 6 18 26 56 86 >         24 3 0 6 18 26 56 88 >         25 3 0 6 18 26 56 90 >         26 3 0 6 18 22 32 60 96 >         27 3 0 6 18 22 32 60 98 >         28 3 0 6 18 22 32 58 64 104 >         29 3 0 6 18 22 32 58 64 106 >         30 3 0 6 18 22 32 58 66 112 >         31 3 0 6 18 22 32 58 66 114 >         0 4  >         1 4 0 >         2 4 2 >         3 4 0 6 >         4 4 0 8 >         5 4 0 10 >         6 4 2 16 37 >         7 4 2 16 >         8 4 0 8 24 45 >         9 4 0 8 24 >         10 4 0 8 26 >         11 4 0 8 26 52 >         12 4 2 16 37 38 >         13 4 2 16 42 69 >         14 4 2 16 42 >         15 4 0 8 24 48 >         16 4 0 8 24 50 >         17 4 0 8 26 56 >         18 4 0 8 26 52 60 >         19 4 2 16 37 38 64 >         20 4 2 16 42 69 70 >         21 4 2 16 42 69 72 >         22 4 0 8 24 48 76 >         23 4 0 8 24 50 82 >         24 4 0 8 26 56 88 >         25 4 0 8 26 52 60 94 >         26 4 0 8 26 52 60 96 >         27 4 0 8 26 52 60 98 >         28 4 2 16 37 38 64 104 >         29 4 2 16 42 69 70 110 >         30 4 2 16 42 69 70 112 >         31 4 2 16 42 69 70 114 

you can try awk command count unique values ignoring 1st , 2nd column:

awk '{$1=$2=""; !seen[$0]++} end{print length(seen)}' file 130 

if counting uniques excluding 1st , 2nd columns , ignoring odd numbers use:

awk '{for (i=3; i<=nf; i++) !($i%2) && !seen[$i]++} end{print length(seen)}' file 63 

Comments

Popular posts from this blog

android - Gradle sync Error:Configuration with name 'default' not found -

java - Andrioid studio start fail: Fatal error initializing 'null' -

html - jQuery UI Sortable - Remove placeholder after item is dropped -