我想计算文档中的行数并将其按前缀词分组.前缀是由第一个下划线分隔的一组字母数字字符.我不太关心它们的排序,但是根据出现的次数列出它们会很好.
该文件如下所示:
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填充了所有第一个元素及其关联计数.