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

AWK按每50个MATCH字符串分割文件的技术问询

解决方案

直接用这个AWK命令就能实现每50个MATCH分割一次文件:

awk '
BEGIN { group=1; count=0 }
/MATCH/ {
    count++
    if (count > 50) {
        group++
        count=1
    }
    next
}
{ print > group ".txt" }
' file

命令解释

  • BEGIN块:初始化两个变量,group表示当前的文件分组编号(从1开始),count用来统计当前分组内MATCH的出现次数。
  • 匹配MATCH行时:先给计数器count加1,当计数超过50时,就把分组号group加1,同时把计数器重置为1,然后跳过当前行(和你原命令的next逻辑一致)。
  • 其他行:直接写入当前分组对应的文件(比如1.txt、2.txt等)。

你之前的命令问题

你写的flag++ == 50只是做了一次比较操作,没有对flag进行任何有效的赋值或逻辑分支处理,所以根本不会改变flag的数值,自然达不到每50个MATCH切换文件的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:15:34