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

[文本处理] 批处理如何替换指定位置的内容和输出指定行?

[复制链接]
发表于 2016-1-28 18:17:29 | 显示全部楼层 |阅读模式
0000  11 22 33 44 55 66 77  ffsdfasd
0001  22 11 22 33 44 55 00  33333333
0002  11 11 11 11 11 11 11  66666666
......
0000 33 33 33 33 33 33 33  44444444
0001 22 11 22 33 44 55 66  ...............
0002 33 44 55 66 77 88 99  !!!!!!!!!!!!!!
......

文本内容如上,比如我想显示第一列为0001的行的内容,比如只显示第一个出现的行的内容(后面有重复的不显示,也可以设定显示第二个出现的),并且把0001这一行后面的最后三组数字替换为00,就是44 55 00更改为00 00 00,(这个44 55 00内容是可变的,但是在行中的位置是不变的,就是不一定是44 55 00可能是其它数字都替换为00 00 00)比如这个文件是1.txt,直接修改这个文件也可以,生成新的文件也可以,文档中的其它内容不动。
发表于 2016-1-28 18:57:17 | 显示全部楼层
本帖最后由 CrLf 于 2016-1-28 19:36 编辑
  1. @gawk "!test&&$1==1{test=$6=$7=$8="00"}1" a.txt >b.txt
复制代码
下载第三方工具gawk

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 谢谢 !

查看全部评分

 楼主| 发表于 2016-1-28 19:05:46 | 显示全部楼层
本帖最后由 freesoft00 于 2016-1-28 19:08 编辑

回复 2# CrLf


    谢谢!不好意思,刚才文本没有写全,修改了一下。
发表于 2016-1-28 19:36:11 | 显示全部楼层
回复 3# freesoft00


    已修改
 楼主| 发表于 2016-1-28 19:41:22 | 显示全部楼层
好的,再次谢谢!
谁知道纯批处理的请帮忙写写。
发表于 2016-1-28 20:24:23 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. (for /f "tokens=1-9" %%a in ('type "1.txt"') do (
  5.     if "%%a" equ "0001" (
  6.         set /a n+=1
  7.         if !n! equ 1 (
  8.             echo %%a %%b %%c %%d %%e 00 00 00 %%i
  9.         ) else (
  10.             echo %%a %%b %%c %%d %%e %%f %%g %%h %%i
  11.         )
  12.     ) else (
  13.         echo %%a %%b %%c %%d %%e %%f %%g %%h %%i
  14.     )
  15. ))>2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
freesoft00 + 1 感谢!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 04:30 , Processed in 0.020567 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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