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

PowerShell 如何提取txt文件中指定起止标记行之间的内容

提取两个标记行之间内容的最优方案

按使用场景优先级从高到低排序:

1. Linux/macOS 环境(最快单行命令)

直接用awk命令,不需要写完整脚本,秒出结果:

awk '/---Start of Data---/{flag=1;next}/---End of Data---/{flag=0}flag' your_file.txt

原理:遇到起始标记时设置输出标记为1并跳过当前标记行,遇到结束标记时设置输出标记为0,输出标记为1时自动打印当前行,直接得到目标数据。

2. 跨平台通用(Python代码)

兼容性最强,不需要依赖系统自带工具,大文件处理效率高:

# 结果直接打印输出的版本
with open("your_file.txt", "r", encoding="utf-8") as f:
    is_target = False
    for line in f:
        strip_line = line.strip()
        if strip_line == "---Start of Data---":
            is_target = True
            continue
        if strip_line == "---End of Data---":
            break
        if is_target:
            # 要保留原行换行符就直接print(line, end="")
            print(line.rstrip("\n"))

注意:不推荐直接读取整个文件后做字符串切割的方案,该方案处理GB级大文件时会占用极高内存,运行效率远低于逐行判断的方案。

3. Windows 原生环境(无需额外安装软件)

用系统自带的PowerShell命令即可实现:

Get-Content "your_file.txt" | ForEach-Object { 
    if ($_ -like "*---Start of Data---*") {
        $flag = $true
    } elseif ($_ -like "*---End of Data---*") {
        $flag = $false
    } elseif ($flag) {
        $_
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:48:02