如何按搜索模式对grep结果分组统计,而非按文件分组?
按grep匹配模式汇总总出现次数
直接用以下命令就能实现按模式汇总次数并输出指定格式:
grep -orE "btn-gray|btn-outline-white" ../../front/src/components | sort | uniq -c | awk '{print $2"::"$1}'
命令拆解:
grep -orE ...:保持原逻辑,递归搜索目标目录,仅输出匹配到的模式文本sort:将相同模式的行集中到一起(uniq仅处理连续重复行,必须先排序)uniq -c:统计每个模式的总出现次数awk '{print $2"::"$1}':调整输出顺序,把模式放在前面、次数放在后面,用::分隔
如果追求更高效率(避免排序开销),可以直接用awk统计:
grep -orE "btn-gray|btn-outline-white" ../../front/src/components | awk '{count[$0]++} END{for(pattern in count) print pattern"::"count[pattern]}'
逻辑说明:
awk用关联数组count记录每个模式的出现次数- 遍历结束后(
END块),循环输出所有模式及其对应的总次数,格式符合要求
内容的提问来源于stack exchange,提问作者Magor Menessy
相关产品推荐
相关产品推荐

