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

Linux匹配指定首尾文本并替换:单行长文本指定内容置空

处理单行长文件中指定首尾片段的删除方法

针对你需要从单行超长文件中删除以exemple text开头、real case结尾的片段的需求,以下是几种实用实现方式:

使用sed命令

sed适合快速处理文本替换,因为你的文件只有一行,直接用贪婪匹配正则即可:

# 原地修改文件(macOS的sed需额外加空参数:sed -i '' 's/.../' your_file.txt)
sed -i 's/exemple text.*real case//' your_file.txt

若需保留原文件并输出到新文件:

sed 's/exemple text.*real case//' your_file.txt > new_file.txt
  • 说明:.*会匹配exemple text和real case之间的所有内容(因文件为单行,不会跨行匹配),替换为空字符串即可删除目标片段。

使用awk命令

awk的字符串处理能力同样适配这个场景:

# 输出修改后的内容到新文件
awk '{sub(/exemple text.*real case/, ""); print}' your_file.txt > new_file.txt

# GNU awk支持原地修改文件
awk -i inplace '{sub(/exemple text.*real case/, ""); print}' your_file.txt

如果文件中存在多个目标片段需要全部删除,把sub替换为gsub即可。

使用Python脚本

如果文件长度极大,Python的内存处理更灵活,能避免命令行工具可能的性能瓶颈:

import re

# 读取单行内容
with open("your_file.txt", "r") as f:
    line = f.readline()

# 替换所有符合条件的片段(只需替换第一个可加count=1参数)
modified_line = re.sub(r"exemple text.*real case", "", line)

# 写入修改后的内容
with open("modified_file.txt", "w") as f:
    f.write(modified_line)
  • 若确定目标片段仅出现一次,也可用字符串分割方式,效率可能更高:
with open("your_file.txt", "r") as f:
    line = f.readline()

if "exemple text" in line and "real case" in line:
    # 分割出首尾部分并拼接
    part1 = line.split("exemple text")[0]
    part2 = line.split("real case")[-1]
    modified_line = part1 + part2
else:
    modified_line = line

with open("modified_file.txt", "w") as f:
    f.write(modified_line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:35:28