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

如何删除竖线|前为8位数字、后首个字段为3位数字的整行?

实现方案

Linux/macOS 命令行方案

方法1:使用grep(最简单)

直接匹配需要保留的行即可,命令如下:
grep -E '^[0-9]{8}\|[0-9]{2}\|' 原文件名 > 结果文件名

  • -E 开启扩展正则表达式支持
  • 正则规则^[0-9]{8}\|[0-9]{2}\|表示匹配行首为8位数字、后跟竖线、再跟2位数字加竖线的行,刚好排除首个字段为3位数字的行

方法2:使用awk(适合后续需要处理字段的场景)

awk -F '|' 'length($2)==2' 原文件名 > 结果文件名

  • -F '|' 指定竖线为字段分隔符
  • length($2)==2 筛选第二个字段(即8位数字后首个竖线跟随的字段)长度为2的行,默认直接打印符合条件的行

方法3:使用sed

sed -n '/^[0-9]\{8\}|[0-9]\{2\}|/p' 原文件名 > 结果文件名

  • -n 关闭默认打印逻辑
  • 匹配到符合规则的行后用p指令输出

Windows 方案

PowerShell命令

Get-Content 原文件名 | Where-Object { $_ -match '^\d{8}\|\d{2}\|' } | Out-File 结果文件名 -Encoding utf8

  • 逐行读取文件内容匹配规则,输出时指定UTF8编码避免乱码

跨平台Python脚本方案

如果需要集成到业务代码中可以使用该方案:

import re

input_path = "你的输入文件路径.txt"
output_path = "你的输出文件路径.txt"
# 匹配需要保留的行的正则
pattern = re.compile(r'^\d{8}\|\d{2}\|')

with open(input_path, 'r', encoding='utf-8') as f_in, open(output_path, 'w', encoding='utf-8') as f_out:
    for line in f_in:
        if pattern.match(line):
            f_out.write(line)

提示:如果需要直接修改原文件,操作前建议先备份原文件避免数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:30:01