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

Linux下如何从给定文件中按Group分组导出指定段落内容

方案1:AWK 命令行快速处理(适用于Linux/macOS环境)

直接执行以下命令即可批量导出所有分组,每个分组生成独立文件:

awk '/^Group /{close(out); out="group_" substr($2,1,length($2)-1) ".txt"} {if($0!="End_section") print > out}' 你的目标文件名.txt

逻辑说明:

  • 匹配到以Group 开头的行时,自动关闭上一个分组的输出文件,提取分组编号生成新的输出文件名(如Group 1对应group_1.txt)
  • 遇到End_section行直接跳过不写入文件
  • 其余内容全部写入当前分组对应的文件,自动适配文件末尾无结束标识的场景
  • 不需要空分组文件的话,可以在命令后追加&& rm -f $(grep -l "End_section" group_*.txt)过滤空文件
方案2:Python 跨平台自定义实现

需要灵活调整导出规则(比如仅导出指定分组、自定义文件名格式)的话,用以下脚本即可:

# 读取原始文件
with open("你的目标文件名.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()

current_group = None
group_dict = {}

for line in lines:
    line = line.rstrip("\n")
    # 识别分组起始行
    if line.startswith("Group "):
        current_group = line.strip(":")
        group_dict[current_group] = []
        continue
    # 跳过空分组结束标记
    if line == "End_section":
        continue
    # 写入当前分组内容
    if current_group:
        group_dict[current_group].append(line)

# 导出所有分组,可修改为指定分组列表如["Group 1", "Group 4"]
for group_name, content_list in group_dict.items():
    file_name = f"{group_name.replace(' ', '_')}.txt"
    with open(file_name, "w", encoding="utf-8") as f:
        f.write("\n".join(content_list))

逻辑说明:

  • 先逐行解析原文件,把所有分组内容存入字典,支持在导出前对内容做二次加工
  • 自动处理文件末尾无结束标识的情况,读到文件最后一行自动结束
  • 跨平台支持Windows、Linux、macOS运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 03:15:05