标题: [文本处理] 【已解决】批处理如何替换/修改文本中指定位置的字符? [打印本页]
作者: popelrain 时间: 2016-5-19 00:23 标题: 【已解决】批处理如何替换/修改文本中指定位置的字符?
本帖最后由 popelrain 于 2016-5-19 21:10 编辑
ABTC 10 CM JMK 2 -20.348
ABTC 11 CO JMK 2 -20.569
ABTC 12 C JMK 3 -20.742
ABTC 13 CF ABC 3 -20.575
ABTC 14 CA ABC 3 -20.769
ABTC 15 CF YUC 4 -20.525
ABTC 16 CA YUC 4 -20.729
文本里很多行这样的数据,
1、我想在JMK、ABC和YUC后面加上一列字母A,A前面有1个空格。
2、变完后每行的字符数和之前还是一样的,相当于字母A只是替换了JMK、ABC和YUC后面的第2个空格。
变成:
ABTC 10 CM JMK A 2 -20.348
ABTC 11 CO JMK A 2 -20.569
ABTC 12 C JMK A 3 -20.742
ABTC 13 CF ABC A 3 -20.575
ABTC 14 CA ABC A 3 -20.769
ABTC 15 CF YUC A 4 -20.525
ABTC 16 CA YUC A 4 -20.729
这个如何通过批处理实现的,请教大神!
作者: gawk 时间: 2016-5-19 08:20
- @echo off
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('type "1.txt"') do (
- set "OldStr=%%i"
- set "NewStr=!OldStr:~0,20! A !OldStr:~23!"
- echo !NewStr!
- ))>2.txt
复制代码
作者: pcl_test 时间: 2016-5-19 08:29
举个栗子- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('more +7 "%~f0"') do (
- set "str=%%a"
- for %%b in (JMK ABC YUC) do set "str=!str: %%b = %%b A!"
- echo;!str!
- )
- pause
- ABTC 12 C JMK 3 -20.742
- ABTC 13 CF ABC 3 -20.575
- ABTC 16 CA YUC 4 -20.729
复制代码
作者: popelrain 时间: 2016-5-19 21:08
回复 2# gawk
大神!膜拜!谢谢!!
作者: popelrain 时间: 2016-5-19 21:09
回复 3# pcl_test
非常感谢!
作者: popelrain 时间: 2016-5-19 21:10
问题已解决!谢谢各位!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |