标题: [文本处理] 批处理怎样实现TXT文档按列对齐或删除? [打印本页]
作者: yonghu123 时间: 2012-3-12 18:10 标题: 批处理怎样实现TXT文档按列对齐或删除?
请大侠帮忙。 有多个TXT 文档,每个文档中数据格式如下(已附图):
2003/10/28 2.41 2.47 2.40 2.46 241838.08 59229412.00
2003/10/29 2.48 2.50 2.43 2.48 382840.31 94298968.00
2003/10/30 2.48 2.48 2.43 2.44 325941.75 80190448.00
2003/10/31 2.42 2.48 2.41 2.46 239708.16 58853128.00
2003/11/03 2.46 2.54 2.43 2.52 436879.34 108911384.00
2003/11/04 2.51 2.64 2.50 2.57 1537652.50 397578432.00
2003/11/05 2.58 2.62 2.57 2.62 1006019.81 261229712.00
2003/11/06 2.62 2.64 2.56 2.58 804865.25 208754784.00
2003/11/07 2.58 2.58 2.52 2.54 665670.38 169572384.00
2003/11/10 2.52 2.57 2.52 2.56 258626.55 65999928.00
2003/11/11 2.56 2.63 2.56 2.60 677383.69 175790720.00
1,如何让数据按列对齐。
2,如果批量删除后两列数据怎么做?
万分感谢!
作者: fatcat 时间: 2012-3-12 19:32
回复 1# yonghu123 - @echo off & setlocal enabledelayedexpansion
- set "T= "
- >2.txt (
- for /f "delims=" %%l in (1.txt) do (
- for /f "tokens=1-7 delims= " %%a in ("%%l") do (
- set "a=%%a!T!" & set "b=%%b!T!" & set "c=%%c!T!" & set "d=%%d!T!" & set "e=%%e!T!" & set "f=%%f!T!"
- echo !a:~0,12!!b:~0,8!!c:~0,8!!d:~0,8!!e:~0,8!!f:~0,15!%%g
- )
- ))
-
- >3.txt (
- for /f "delims=" %%l in (1.txt) do (
- for /f "tokens=1-5 delims= " %%a in ("%%l") do (
- set "a=%%a!T!" & set "b=%%b!T!" & set "c=%%c!T!" & set "d=%%d!T!"
- echo !a:~0,12!!b:~0,8!!c:~0,8!!d:~0,8!%%e
- )
- ))
复制代码
作者: yonghu123 时间: 2012-3-12 21:00
感谢回复,
但我将代码保存成批处理文件,将10个txt文件放到同一文件夹下,运行您的程序,
然后出现2.txt 和3.txt 没有其他变化,请问该如何操作,谢谢!
作者: apang 时间: 2012-3-12 21:02
本帖最后由 apang 于 2012-3-12 21:06 编辑
代码保存到txt文件所在文件夹运行,%%a、%%b.......%%g之间的空格请用Tab键替代。
第1问、第2问分别以"源文件名_new1.txt"和"源文件名_new2.txt"形式保存。试试吧。- @echo off
- pushd "%~dp0"
- for /f "delims=" %%i in ('dir /b *.txt') do (
- for /f "tokens=1-7 delims= " %%a in ('type "%%i"') do (
- echo %%a %%b %%c %%d %%e %%f %%g>>"%%~ni_new1.txt"
- echo %%a %%b %%c %%d %%e>>"%%~ni_new2.txt
- )
- )
复制代码
作者: yonghu123 时间: 2012-3-12 21:35
抱歉啊,我按要求改了,但运行后打开文档提示
ECHO 处于关闭状态
不好意思对批处理非常不懂,我已将10个样例的文件上传,请大侠帮我测试一下
如果可以能否将批处理文件上传,谢谢!
【需要修改的文件样例 大小 400k】
http://kuai.xunlei.com/d/KHFKUKTNEAPO
http://good.gd/1971752.htm
论坛附件无法上传,我传到网盘了。
作者: find 时间: 2012-3-12 22:11
回复 5# yonghu123
只留下个三行五行的,就能传到论坛上来了。
作者: find 时间: 2012-3-12 22:20
1:- gawk "BEGIN{OFS=\"\t\"}{$1=$1}1" a.txt >b.txt
复制代码
作者: find 时间: 2012-3-12 22:21
2:- gawk "{NF-=2}1" a.txt >b.txt
复制代码
作者: yonghu123 时间: 2012-3-12 22:31
1:
find 发表于 2012-3-12 22:20
打扰您了,将代码运行,出现b.txt ,没有变化,能不能加我QQ,(已发短消息)
非常感谢。
作者: apang 时间: 2012-3-12 22:33
代码上传了,楼主试试。
作者: find 时间: 2012-3-12 22:38
回复 9# yonghu123
你有gawk.exe吗?
有问题请直接回帖,不要发消息。
作者: yonghu123 时间: 2012-3-12 22:41
非常感谢两位,再次感谢 apang,谢谢。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |