linux – 按前缀字计数行和分组

我想计算文档中的行数并将其按前缀词分组.前缀是由第一个下划线分隔的一组字母数字字符.我不太关心它们的排序,但是根据出现的次数列出它们会很好.

文件如下所示:

prefix1_data1
prefix1_data2_a
differentPrefix_data3
prefix1_data2_b
differentPrefix_data5
prefix2_data4
differentPrefix_data5

输出应如下:

prefix1           3
differentPrefix   3
prefix2           1

我已经在python中做过这个但是我很好奇是否可以使用命令行或bash脚本更高效地执行此操作? uniq命令有-c和-w选项,但前缀的长度可能不同.

解决方法:

你可以使用awk:

awk -F_ '{a[$1]++}END{for(i in a) print i,a[i]}' file

字段分隔符设置为_.

数组a填充了所有第一个元素及其关联计数.

解析文件时,将打印数组内容

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...