首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按字母格式解析文件和列表输出的AWK命令,包括每一项的计数

按字母格式解析文件和列表输出的AWK命令,包括每一项的计数
EN

Stack Overflow用户
提问于 2020-09-11 18:26:26
回答 1查看 82关注 0票数 2

输入文件(称为RESample.txt)包含

代码语言:javascript
复制
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)

这个awk命令让我以某种方式获得所需的输出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]}',但我不知道如何完成该命令以获得整个数组以及每个值的计数。

我也尝试了这个命令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];}',但是它只打印了数组中最后一项的整行和计数,并且不计算空条目(UM?而不是期望的输出。

我需要使用awk正确处理输入字段并让它输出所需输出的命令是什么?

Update -此命令按字母顺序给出输出--针对我拥有的所有值运行(我可以不使用括号中的值)

grep 'by name' RESample.txt|awk '{POE[$7]++;} END { for (i in POE) print i, POE[i];}'|sort

代码语言:javascript
复制
 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

但数不清了。那个?例如,应该是3,而不是1,但其他值应该是。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-11 18:54:04

请您试着用GNU awk中显示的示例进行以下、编写和测试。在链接https://ideone.com/gfilsQ#stdin中编写和测试

代码语言:javascript
复制
awk '
{
  sub(/.*this session: +/,"")
  if(!NF){ arr["UnKnown"]++ } 
  for(j=1;j<=NF;j++){
    arr[$j]++
  }
}
END{
  for(k in arr){
      print k,"("arr[k]")"
  }
}' Input_file
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63852429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档