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

如何在单行内容TXT文件末尾追加无扩展名的文件名

嘿,我来帮你搞定这个需求!针对不同的操作系统,我整理了几种简单可行的方法,你可以根据自己的情况选择:

方法1:Linux/macOS 下的 Shell 脚本

这个方法直接用系统自带的命令就能完成,不需要额外安装工具:

for file in *.txt; do
    # 获取不带 .txt 扩展名的文件名
    filename="${file%.txt}"
    # 在文件内容末尾追加空格和文件名,同时生成备份文件
    sed -i.bak "s/$/ $filename/" "$file"
    # 移除自动生成的备份文件(如果不需要可以删掉这行)
    rm "${file}.bak"
done
  • 解释:${file%.txt} 是 Shell 的参数扩展语法,用来去掉文件名末尾的 .txt;sed -i.bak 会原地修改文件,s/$/ $filename/ 表示在每行末尾($ 匹配行尾)追加空格和文件名。
方法2:Windows 下的批处理脚本

如果是Windows系统,可以用批处理脚本实现:

@echo off
setlocal enabledelayedexpansion

for %%f in (*.txt) do (
    # 获取不带扩展名的文件名
    set "filename=%%~nf"
    # 读取文件的单行内容并追加文件名
    for /f "delims=" %%l in ("%%f") do (
        echo %%l !filename! > "temp.txt"
        # 覆盖原文件
        move /y "temp.txt" "%%f"
    )
)

endlocal
  • 解释:%%~nf 是批处理中获取不带扩展名文件名的语法;enabledelayedexpansion 用来确保循环里的变量能实时更新,避免读取到旧值。
方法3:Python 脚本(跨平台通用)

如果需要跨平台使用,或者你熟悉Python,这个脚本在Windows、Linux、macOS上都能运行:

import os

# 遍历当前目录下所有的TXT文件
for file_name in os.listdir('.'):
    if file_name.lower().endswith('.txt'):
        # 分离文件名和扩展名,获取不带后缀的名称
        name_without_ext = os.path.splitext(file_name)[0]
        # 读取文件内容(因为是单行,直接读全部即可)
        with open(file_name, 'r', encoding='utf-8') as f:
            content = f.read().rstrip('\n')  # 去掉末尾可能的换行符
        # 写入追加后的内容
        with open(file_name, 'w', encoding='utf-8') as f:
            f.write(f"{content} {name_without_ext}\n")
  • 解释:这个脚本会自动处理编码问题,确保中文等特殊字符不会乱码;rstrip('\n') 是为了避免原文件末尾的换行导致追加后多出空行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:27:44