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

如何用Linux单行命令按正则表达式行分隔符拆分文件?

按正则表达式分隔符拆分文件的Linux单行命令

直接用Perl就能实现按正则表达式拆分文件的需求,不需要依赖split命令(它确实不支持多字符分隔符)。以下是单行命令:

perl -ne 'BEGIN { $file_num = 1; open $fh, ">", "myfileprefix_$file_num" or die $!; } if (/theseparatingregexp/) { close $fh; $file_num++; open $fh, ">", "myfileprefix_$file_num" or die $!; next; } print $fh $_;' myfile

命令说明:

  • -ne:逐行读取输入文件myfile,执行后续代码逻辑
  • BEGIN块:初始化第一个输出文件,文件编号从1开始,前缀为myfileprefix_
  • 当行内容匹配到你的正则分隔符theseparatingregexp时:
    • 关闭当前输出文件
    • 文件编号自增,打开新的输出文件
    • next跳过当前分隔符行(如果需要保留分隔符,删掉next即可)
  • 未匹配分隔符的行,直接写入当前打开的输出文件

自定义调整:

  • 修改myfileprefix_为你需要的输出文件前缀
  • 调整/theseparatingregexp/为实际的拆分正则表达式
  • 如果要保留分隔符行,移除代码中的next;,分隔符行会被写入当前文件末尾

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:35:34