[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

如何在指定行的行尾添加字符串?
有一个文本abc.txt,要在指定行(如第3行)的行尾添加个“;”,该如何写?
搜了下以前的,基本都是在所有行添加,我要在指定行行尾添加

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)
复制代码
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 1# bbs9999


    不明白楼主的意思,一个文本,指定一行加";",这还要写脚本吗,手动不是更快?
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 3# ivor


    某些自动化的场景下,修改某个配置文件之类的。可能是只需要修改一处。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  1. sed -i "3s/$/;/" abc.txt
复制代码

TOP

@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
要第几行加; 改一下数字就好了
不过这个代码得要你文本中的每行没空格,有的话会有问题

TOP

行首行尾随你便,不加内容留空就行,“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. )
复制代码

TOP

返回列表