You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将egrep匹配到的每组三条结果合并为同一行输出

实现方法

你可以直接在原有 grep 命令的管道后追加以下任意一种处理逻辑即可:

  • 方法1:使用xargs(最简单,适合固定每3行一组的场景)
    完整命令:
    more filename.txt | egrep 'Name:|matchA:|matchB:' | xargs -L 3
    
    说明:-L 3参数指定每3行作为一组输出为单行,自动用空格分隔。
  • 方法2:使用awk(更灵活,支持按内容判断分组边界)
    完整命令:
    more filename.txt | egrep 'Name:|matchA:|matchB:' | awk '{printf "%s ",$0} /matchB:/{print ""}'
    
    说明:每读取一行先不换行输出,匹配到matchB:行时输出换行符完成一组拼接,不受组内行数波动影响。
    如果不需要保留原有grep逻辑,也可以直接用awk单独处理源文件,效率更高:
    awk '/Name:|matchA:|matchB:/{printf "%s ",$0} /matchB:/{print ""}' filename.txt
    
  • 方法3:使用sed
    完整命令:
    more filename.txt | egrep 'Name:|matchA:|matchB:' | sed 'N;N;s/\n/ /g'
    
    说明:连续读取3行到模式空间,将换行符替换为空格输出。

内容的提问来源于stack exchange,提问作者Asad007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:48:03