标题: [文本处理] [已解决]如何删除txt文本中第7列数字后面的两个0(指定列内容中的最后两个字符) [打印本页]
作者: 空-空 时间: 2015-7-15 17:03 标题: [已解决]如何删除txt文本中第7列数字后面的两个0(指定列内容中的最后两个字符)
2015/07/07 1000 17.43 17.44 17.41 17.41 1064700 18551960.00
2015/07/07 1001 17.43 17.46 17.40 17.46 1336800 23312896.00
2015/07/07 1002 17.45 17.46 17.41 17.41 1071600 18692142.00
2015/07/07 1003 17.44 17.48 17.43 17.48 1227300 21430124.00
2015/07/07 1004 17.45 17.49 17.41 17.41 1013000 17672410.00
2015/07/07 1005 17.42 17.44 17.40 17.40 1275300 22206702.00
2015/07/07 1013 17.48 17.48 17.42 17.46 1416400 24738636.00
2015/07/07 1014 17.46 17.46 17.42 17.44 775400 13523520.00
2015/07/07 1015 17.42 17.44 17.41 17.42 884500 15409006.00
2015/07/07 1016 17.42 17.43 17.40 17.43 1096600 19101864.00
2015/07/07 1017 17.42 17.44 17.38 17.41 951100 16561428.00
2015/07/07 1018 17.41 17.42 17.40 17.40 610700 10630553.00
2015/07/07 1019 17.40 17.42 17.37 17.38 959800 16697726.00
2015/07/07 1020 17.39 17.39 17.36 17.36 736100 12785192.00
数据
--------------------------------------------------------------------------------------------------------------------- @echo off
- setlocal enabledelayedexpansion
- set /p "目录=文件夹名称:"
- for /f "delims=" %%n in ('dir /s /b "%cd%\%目录%\*.txt"') do (
- ren "%%n" "%%~nxn_"
- for /f "delims=数据 tokens=1" %%i in ( 'type "%%n_"' ) do (
- set s=%%i
- echo !s:~,13!:!s:~13!>>%%n))
- Del /q /s /f "%cd%\%目录%\*_"
- PAUSE
复制代码
现在bat代码 在第13个字符的位置加“:”冒号并删除文本中底部“数据”字符。
但删除第7列数字后面两个0不知道要怎么写了,请高手们帮帮忙在我原来代码基础上修改一下!谢谢!
作者: pcl_test 时间: 2015-7-15 18:51
覆盖源文件,注意备份- @echo off&setlocal enabledelayedexpansion
- set /p "目录=文件夹名称:"
- for /f "delims=" %%a in ('dir /s /b "%cd%\%目录%\*.txt"') do (
- (for /f "tokens=1-7*" %%b in ('type "%%a"') do (
- set s1=%%c
- set s2=%%h
- if "!s2:~-2!" equ "00" (set "s2=!s2:~,-2!")
- echo;%%b !s1:~,2!:!s1:~-2,2! %%d %%e %%f %%g !s2! %%i
- ))>"%%~dpa$"
- move "%%~dpa$" "%%a"
- )
- pause
复制代码
作者: 空-空 时间: 2015-7-15 19:58
回复 2# pcl_test
谢谢!
文本底部的文字没去掉,还增加了“~,2s1:~-2,2s2 ”字符,这是什么原因呢?
作者: pcl_test 时间: 2015-7-15 20:11
回复 3# 空-空
你文档最后一行都是“数据”两字?还是有些有有些没有?最后一行都有哪些情况,要说起清楚
作者: 空-空 时间: 2015-7-15 20:35
回复 4# pcl_test
最后一行全部文档中都是“数据”,都有的
作者: pcl_test 时间: 2015-7-15 20:36
回复 5# 空-空
改一行
if "!s2!" neq "" (echo;%%b !s1:~,2!:!s1:~-2,2! %%d %%e %%f %%g !s2! %%i)
作者: 空-空 时间: 2015-7-15 20:46
回复 6# pcl_test
试了一下,改了一行文本底部的文字没去掉
作者: pcl_test 时间: 2015-7-15 20:51
回复 7# 空-空
测试没问题
作者: 空-空 时间: 2015-7-15 21:20
回复 空-空
测试没问题
pcl_test 发表于 2015-7-15 20:51
非常感谢,试了,没问题,是我改错了
作者: CrLf 时间: 2015-7-26 00:44
用 gawk 来一个- @gawk "{gsub(\"..$\",\"\",$7)};1" a.txt >b.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |