如何删除文本文件中的指定字符串并去除对应位置的全部空白字符
实现方案
方案1:Linux/macOS 命令行快速处理(sed工具)
直接执行单行命令即可完成修改,以删除关键词fruit、处理文件input.txt为例:
# GNU sed(Linux发行版默认) sed -i 's/^fruit[[:space:]]*//' input.txt # BSD sed(macOS默认) sed -i '' 's/^fruit[[:space:]]*//' input.txt
正则逻辑说明:^fruit匹配行首的目标关键词,[[:space:]]*匹配关键词后紧跟的任意数量空白字符(空格、制表符均可匹配),两者一起替换为空即可实现需求。
提示:如果目标关键词不是固定出现在行首,且需要删除一行内所有匹配的目标字符串及相邻空白,将正则改为
s/fruit[[:space:]]*//g即可。
方案2:Windows 原生工具处理
方法2.1 PowerShell命令
无需安装额外软件,直接运行以下命令:
(Get-Content input.txt) -replace '^fruit\s*', '' | Set-Content input.txt
方法2.2 图形化文本编辑器操作
支持VS Code、Notepad++等常见编辑器,操作逻辑一致:
- 打开目标文件后按
Ctrl+H调出替换面板 - 勾选「正则表达式」匹配选项
- 查找内容填写
^fruit\s*,替换内容留空 - 点击「全部替换」即可完成处理
方案3:跨平台Python脚本实现
如果需要嵌入业务逻辑,可使用以下通用Python脚本:
# 自定义配置 target_word = "fruit" # 要删除的指定字符串 file_path = "input.txt" # 目标文件路径 with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() with open(file_path, 'w', encoding='utf-8') as f: for line in lines: if line.startswith(target_word): # 去掉目标字符串后清理左侧所有空白 processed_line = line[len(target_word):].lstrip() f.write(processed_line) else: # 无需处理的行原样保留 f.write(line)
内容的提问来源于stack exchange,提问作者Tian Yang
相关产品推荐
相关产品推荐

