Input file (called RESample.txt) contains
Rogue Exiles by name this session:
Rogue Exiles by name this session: OG VG
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session: MS
Rogue Exiles by name this session: AB TM
Rogue Exiles by name this session:
Rogue Exiles by name this session: AR UM
Rogue Exiles by name this session: MA
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session: UM UM EG TO AV OG
Rogue Exiles by name this session: AG AB OG
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session:
Rogue Exiles by name this session: TH TM
Rogue Exiles by name this session: JU OG
Rogue Exiles by name this session: OG
Rogue Exiles by name this session: TM
Rogue Exiles by name this session: OG TO
Rogue Exiles by name this session: TH AV VA
Rogue Exiles by name this session: TH UT KO VA
Rogue Exiles by name this session: TM UT
Rogue Exiles by name this session: MA TO
Rogue Exiles by name this session:
Rogue Exiles by name this session: OO
Rogue Exiles by name this session: DL TH
Rogue Exiles by name this session:
Rogue Exiles by name this session: TH TO ID AS XB AR
Rogue Exiles by name this session: KO
Rogue Exiles by name this session:
Rogue Exiles by name this session: OG AB ?
Rogue Exiles by name this session: VA AS
Rogue Exiles by name this session: EG
Rogue Exiles by name this session:
Rogue Exiles by name this session: ID AS
Rogue Exiles by name this session: ID AS TI
Rogue Exiles by name this session: VM AN
Rogue Exiles by name this session: AB AV
Rogue Exiles by name this session: ID
Rogue Exiles by name this session: TO TM AR AS
Rogue Exiles by name this session: XB
Rogue Exiles by name this session: OO
Rogue Exiles by name this session: TM
Rogue Exiles by name this session:
Rogue Exiles by name this session: ? MA
Rogue Exiles by name this session: TH UT
Rogue Exiles by name this session: ZD AB UM
Rogue Exiles by name this session: AN UM
Rogue Exiles by name this session: ST AR AV
Rogue Exiles by name this session: UM
Rogue Exiles by name this session: MS
Rogue Exiles by name this session: ST
Rogue Exiles by name this session: OG
Rogue Exiles by name this session: AB
Rogue Exiles by name this session: AN
Rogue Exiles by name this session: AN OO
Rogue Exiles by name this session: ID
Rogue Exiles by name this session: TO
Rogue Exiles by name this session: UM
Rogue Exiles by name this session: EG
Rogue Exiles by name this session: VA AR ? OG
Desired output is
AB (6)
AR (4)
MA (3)
OG (9)
? (3)
Blank (19)
This awk command gets me someway to desired output
grep 'by name' RESample.txt|awk '{ORS=" "; for(i=7;i<=NF;i++) print $i}'|awk '{split ($0,POE); print POE[1]; print POE[2]; print POE[3]}'
but I don't know how to finish the command to get the entire array plus the count of each value as desired.
I also tried this command grep 'by name' RESample.txt|awk '{ORS=" "; for(i=7;i<=NF;i++) print $i}'|awk '{POE[$0]++;} END { for (i in POE) print i, POE[i];}'
but this prints a whole line and a count of only the last item in the array and doesn't count blank entries (UM EG VA AR ? OG 1), not the desired output.
What command(s) do I need to process the input field with awk properly and get it to spit out the desired output ?
Update - this command gives me output in alphabetical order - run against all the values I had (I can live without values in brackets)
grep 'by name' RESample.txt|awk '{POE[$7]++;} END { for (i in POE) print i, POE[i];}'|sort
19
? 1
AB 3
AG 1
AN 3
AR 1
DL 1
EG 2
ID 4
JU 1
KO 1
MA 2
MS 2
OG 5
OO 2
ST 2
TH 5
TM 3
TO 2
UM 3
VA 2
VM 1
XB 1
ZD 1
but the count is off on some. The ? for example should be 3, not 1, but other values are what they should be.