gpt4 book ai didi

linux - 计算行数并按前缀词分组

转载 作者:IT王子 更新时间:2023-10-29 01:00:11 26 4
gpt4 key购买 nike

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

文件看起来像这样:

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 选项,但前缀的长度可能会有所不同。

最佳答案

使用 sedsortuniq 命令组合的解决方案:

sed -rn 's/^([^_]+)_.*/\1/p' testfile | sort | uniq -c

输出:

3 differentPrefix
3 prefix1
1 prefix2

^([^_]+)_ - 匹配从字符串开头到第一个的子字符串(前缀,包含除_之外的任何字符)出现下划线 _

关于linux - 计算行数并按前缀词分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42480020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com