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

如何在文本文件第5行第10位插入"hello world"并输出文件

在文本文件指定位置插入内容的实现方法

下面提供几种常用的实现方式,可根据你的环境选择:

方法1:使用 sed 命令(Unix/Linux 环境)

sed 是处理文本的常用工具,通过行定位和正则替换实现插入:

sed '5s/^\(.\{9\}\)/\1hello world/' input.txt > output.txt
  • 解释:
    • 5s:指定仅处理第5行
    • ^\(.\{9\}\):匹配第5行的前9个字符(^ 表示行首,.\{9\} 匹配任意9个字符)
    • \1hello world:将匹配到的前9个字符保留,后面追加"hello world",相当于在第10个位置插入内容
    • 如果原第5行长度不足9个字符,内容会被插入到行尾

方法2:使用 awk 命令(Unix/Linux 环境)

awk 支持更灵活的字符串截取操作:

awk 'NR==5 {print substr($0,1,9) "hello world" substr($0,10)} NR!=5 {print $0}' input.txt > output.txt
  • 解释:
    • NR==5:判断当前行是第5行
    • substr($0,1,9):截取第5行的前9个字符;substr($0,10):截取第5行从第10个字符开始的剩余部分
    • 拼接三部分内容:前9个字符 + "hello world" + 剩余部分,其他行直接输出

方法3:使用 Python 脚本(跨平台)

适合需要跨平台运行或后续扩展逻辑的场景,创建脚本文件 insert_text.py:

with open('input.txt', 'r', encoding='utf-8') as f_in, open('output.txt', 'w', encoding='utf-8') as f_out:
    for line_num, line in enumerate(f_in, start=1):
        stripped_line = line.rstrip('\n')
        if line_num == 5:
            # 前9个字符(对应第1-9位) + 插入内容 + 第10位及以后的内容
            new_line = stripped_line[:9] + 'hello world' + stripped_line[9:]
            f_out.write(new_line + '\n')
        else:
            f_out.write(line)

运行脚本:

python insert_text.py
  • 解释:
    • 逐行读取输入文件,通过enumerate获取行号
    • 第5行时,利用字符串切片完成插入操作(Python字符串索引从0开始,stripped_line[:9]对应前9个字符)
    • 保留原文件的换行符格式,确保输出文件与原文件格式一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:38:11