找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29442|回复: 6

[文本处理] 批处理如何在指定行的行尾添加字符串?

[复制链接]
发表于 2016-2-18 13:53:45 | 显示全部楼层 |阅读模式
如何在指定行的行尾添加字符串?
有一个文本abc.txt,要在指定行(如第3行)的行尾添加个“;”,该如何写?
搜了下以前的,基本都是在所有行添加,我要在指定行行尾添加
发表于 2016-2-18 15:45:57 | 显示全部楼层
python

  1. """
  2. 如何在指定行的行尾添加字符串.py
  3. http://bbs.bathome.net/thread-39409-1-1.html
  4. 2016年2月18日 15:39:44 codegay
  5. python
  6. """
  7. with open("a.txt","r+") as f:
  8.     txt=f.readlines()
  9.     txt[2]=txt[2].rstrip("\n")+";\n"
  10.     f.seek(0)
  11.     f.writelines(txt)

复制代码
发表于 2016-2-18 22:01:29 | 显示全部楼层
回复 1# bbs9999


    不明白楼主的意思,一个文本,指定一行加";",这还要写脚本吗,手动不是更快?
发表于 2016-2-18 22:31:22 | 显示全部楼层
回复 3# ivor


    某些自动化的场景下,修改某个配置文件之类的。可能是只需要修改一处。
发表于 2016-2-18 23:11:34 | 显示全部楼层
  1. sed -i "3s/$/;/" abc.txt
复制代码
发表于 2016-2-18 23:42:56 | 显示全部楼层
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in (abc.txt) do (
set /a i+=1
set var=%%i;
if /i "!i!"=="3" ( echo !var!>>abc_1.txt ) else (echo %%i>>abc_1.txt)
)
pause
要第几行加; 改一下数字就好了
不过这个代码得要你文本中的每行没空格,有的话会有问题
发表于 2016-2-19 20:33:09 | 显示全部楼层
行首行尾随你便,不加内容留空就行,“equ 3”的3可以随意改成想要的行数(注意:bat所在以及子文件夹的所有txt都会被改动):
  1. @echo off
  2. set "行首=$$$$"
  3. set "行尾=####"
  4. for /f "delims=" %%i in ('dir /s /b *.txt') do (
  5. (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%i"') do (
  6. if %%a equ 3 (echo %行首%%%b%行尾%) else (echo.%%b)
  7. ))>$
  8. move $ "%%i"
  9. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 15:42 , Processed in 0.018200 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表