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

如何使用Bash或Python移除文本文件每行前后指定数量的字符

如何使用Bash或Python移除文本文件每行前后指定数量的字符

嘿,我来帮你搞定这个需求!你要移除每行前5个字符、后2个字符,不管用Bash还是Python都有简单的实现方法,我给你详细说说:

Bash 方法

方法1:用 sed 命令

sed 是处理文本的利器,一行命令就能搞定:

sed 's/^.\{5\}//; s/..$//' file.txt > desired_file.txt
  • s/^.\{5\}//:匹配每行开头的5个任意字符(^ 表示行首,.\{5\} 代表5个任意字符),并替换为空,也就是删掉前5个字符。
  • s/..$//:匹配每行结尾的2个任意字符($ 表示行尾),替换为空,删掉后2个字符。
  • 最后把处理结果重定向到 desired_file.txt 里。

方法2:用 awk 命令

如果习惯用 awk,也可以这样写:

awk '{print substr($0, 6, length($0)-7)}' file.txt > desired_file.txt
  • substr($0, 6, length($0)-7):$0 代表整行内容,substr 函数的意思是从第6个字符开始(因为前5个要删掉),截取的长度是总行数减去7(前5个+后2个),正好拿到中间需要的内容。

Python 方法

如果需要更灵活的逻辑(比如后续要加其他处理),用Python脚本更合适:

with open('file.txt', 'r', encoding='utf-8') as infile, open('desired_file.txt', 'w', encoding='utf-8') as outfile:
    for line in infile:
        # 先去掉行尾的换行符,避免干扰切片
        stripped_line = line.rstrip('\n')
        # 切片:从第5个索引开始(Python索引从0开始),到倒数第2个索引结束
        cleaned_line = stripped_line[5:-2]
        # 写入处理后的内容,记得加回换行符
        outfile.write(cleaned_line + '\n')
  • 用 with 语句打开文件,会自动帮你关闭文件,不用手动处理,更安全。
  • 切片 [5:-2] 是Python里的快捷写法:5 表示跳过前5个字符(索引0到4),-2 表示取到倒数第2个字符之前,正好删掉最后2个字符。
  • 如果你的文件有特殊编码,记得加上 encoding='utf-8' 避免乱码。

你可以根据自己的习惯选其中一种方法试试,亲测能得到你想要的 desired_file.txt 结果~

备注:内容来源于stack exchange,提问作者eternalodballl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:38:07