微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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填充了所有第一个元素及其关联计数.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐