Trying to find the Count of Other Column

Content of My File below :-

Name,Direport,Management chain,Owner,Entity,Oilv name,Oilv policy class,Oilv policy type,Oilv type severity,Entity status,Acked,Resolution,Plan to fix by,Id entity,Entity link,Ticket link,Comment
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,EnvironmentsX,availability,risk,High,ACTIVE,YES,BY_DESIGN,UNKNOWN,3142959,https://pe.x.com/entity/3142959#gol4Js,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,EnvironmentsX,availability,risk,High,ACTIVE,NO,NO PLAN,UNKNOWN,2458850,https://pe.x.com/entity/2458850#gol4Js,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,EnvironmentsX,availability,risk,High,ACTIVE,YES,BY_DESIGN,UNKNOWN,3349649,https://pe.x.com/entity/3349649#gol4Js,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,Bad ASG distribution in Prod,availability,risk,Critical,ACTIVE,NO,NO PLAN,UNKNOWN,26912320,https://pe.x.com/entity/26912320#sdabX,NA,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,AWX3,availability,risk,High,ACTIVE,NO,NO PLAN,UNKNOWN,2459346,https://pe.x.com/entity/2459346#s3JavaClientCrossRegionCalls,NA,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,Bad ASG distribution in Prod,availability,risk,Critical,ACTIVE,NO,NO PLAN,UNKNOWN,3984911,https://pe.x.com/entity/3984911#sdabX,NA,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,AWX3,availability,risk,High,ACTIVE,NO,NO PLAN,UNKNOWN,4082037,https://pe.x.com/entity/4082037#s3JavaClientCrossRegionCalls,NA,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,AWX3,availability,risk,High,ACTIVE,NO,NO PLAN,UNKNOWN,24691230,https://pe.x.com/entity/24691230#s3JavaClientCrossRegionCalls,NA,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,EnvironmentsX,availability,risk,Critical,ACTIVE,NO,NO PLAN,UNKNOWN,24691230,https://pe.x.com/entity/24691230#Stejx,NA,-
AnksX,AnksX,AnksX,anksd (AnksX),SpectreX,EnvironmentsX,availability,risk,High,ACTIVE,NO,NO PLAN,UNKNOWN,24691230,https://pe.x.com/entity/24691230#gol4Js,-

awk i wrote

awk -F "," '/High|Critical/' temp10.csv | grep -w "availability"  | awk -F "," '{print $6}' | sort | uniq -c 

O/p I'm getting

   3 AWX3
   2 Bad ASG distribution in Prod
   5 EnvironmentsX

O/p I want is

Oilv name                               Total Count   ACKED    NOT_ACKED
 AWX3                                      3                     0                   3
 Bad ASG distribution in Prod 2                     0                 2
 EnvironmentsX                        5                     2                3

ACKED is the 11th column, i tried below solution but to no avail

awk -F "," '/High|Critical/' temp10.csv | grep -w "availability"  | grep -w "YES" | awk -F "," '{print $6}' | sort | uniq -c

awk -F "," '/High|Critical/' temp10.csv | grep -w "availability"  | grep -w "NO" | awk -F "," '{print $6}' | sort | uniq -c

Maybe you want something more like:

awk -F, '
BEGIN {	m = 9
}
$9 ~ /^(High|Critical)$/ && $7 == "availability" {
	c[$6]++
	n[$6] += $11 == "NO"
	y[$6] += $11 == "YES"
	if(length($6) > m) m = length($6)
}
END {	printf("%*s  Total Count  ACKED  NOT_ACKED\n", m, "Oilv name")
	for(i in c)
		printf("%*s  %11d  %5d  %9d\n", m, i, c, y, n)
}' temp10.csv

which with your sample input produces the output:

                   Oilv name  Total Count  ACKED  NOT_ACKED
                        AWX3            3      0          3
               EnvironmentsX            5      2          3
Bad ASG distribution in Prod            2      0          2
1 Like

Hi ALL,

How do i get that with the extra row? Sum of all the numeral columns.

Oilv name  Total Count  ACKED  NOT_ACKED
                        AWX3            3      0          3
               EnvironmentsX            5      2          3
Bad ASG distribution in Prod            2      0          2
TOTAL                                      10        2        8

[/CODE]

No idea by yourself on how to go about it?

Building on what Don Cragun posted, try

awk -F, '
BEGIN   {m = 9
        }
$9 ~ /^(High|Critical)$/ &&
$7 == "availability"            {c[$6]++
                                 n[$6] += $11 == "NO"
                                 y[$6] += $11 == "YES"
                                 if(length($6) > m) m = length($6)
                                }
END                             {printf("%*s  Total Count  ACKED  NOT_ACKED\n", m, "Oilv name")
                                 for(i in c)    {printf("%*s  %11d  %5d  %9d\n", m, i, c, y, n)
                                                 CT += c
                                                 NT += n
                                                 YT += y
                                                }
                                 printf ("%*s  %11d  %5d  %9d\n", m, "Total", CT, YT, NT)

                                }
'  temp10.csv
                   Oilv name  Total Count  ACKED  NOT_ACKED
Bad ASG distribution in Prod            2      0          2
                        AWX3            3      0          3
               EnvironmentsX            5      2          3
                       Total           10      2          8
1 Like