una sumar separador linea extraer comando columnas campos archivo awk solaris

awk - separador - necesita reorganizar y sumar la columna en el comando solaris



extraer una linea de un archivo en linux (3)

Tengo datos a continuación llamados archivo atp.csv

Date_Time,M_ID,N_ID,Status,Desc,AMount,Type 2015-01-05 00:00:00 076,1941321748,BD9010423590206,200,Transaction Successful,2000,PRETOP 2015-01-05 00:00:00 077,1941323504,BD9010423590207,351,Transaction Successful,5000,PRETOP 2015-01-05 00:00:00 078,1941321743,BD9010423590205,200,Transaction Successful,1500,PRETOP 2015-01-05 00:00:00 391,1941323498,BD9010500000003,200,Transaction Successful,1000,PRETOP

Quiero contar el estado sabio usando el comando debajo.

cat atp.csv|awk -F'','' ''{print $4}''|sort|uniq -c

El resultado es como a continuación:

3 200 1 351

Pero quiero dar me gusta debajo de la salida y también quiero sumar la columna de cantidad en cuanto al estado.

200,3,4500 351,1,5000

Ese es el estado primero y luego el valor de conteo. Por favor ayuda ...


Puedes probar esta versión awk también

awk -F'','' ''{print $4,",", a[$4]+=$6}'' FileName | sort -r | uniq -cw 6 | sort -r

Salida:

3 200 , 4500 1 351 , 5000

De otra manera:

awk -F'','' ''{print $4,",", a[$4]+=$6}'' FileName | sort -r | uniq -cw 6 |sort -r | sed ''s//([^ ]/+/)./([^ ]/+/)...//2,/1,/''


Todo en (g) awk

awk -F, ''NR>1{a[$4]++;b[$4]+=$6} END{n=asorti(a,c);for(i=1;i<=n;i++)print c[i]","a[c[i]]","b[c[i]]}'' file


AWK tiene matrices asociativas.

% cat atp.csv | awk -F, ''NR>1 {n[$4]+=1;s[$4]+=$6;} END {for (k in n) { print k "," n[k] "," s[k]; }}'' | sort 200,3,4500 351,1,5000

En lo de arriba:

  1. La primera línea (registro) se omite con NR>1 .

  2. n[k] es el número de ocurrencias de la clave k (entonces agregamos 1), y s[k] son los valores de la suma de ejecución en el campo 6 (por lo tanto, agregamos $6 ).

  3. Finalmente, después de procesar todos los registros ( END ), puede iterar sobre las matrices asociadas por clave ( for (k in n) { ... } ) e imprimir las claves y valores en las matrices n y s asociadas con la clave.