标题: [文本处理] [已解决]BAT脚本如何批量处理,删除文本的最后一列数据? [打印本页]
作者: 乱乱 时间: 2012-10-14 15:20 标题: [已解决]BAT脚本如何批量处理,删除文本的最后一列数据?
本帖最后由 乱乱 于 2012-11-1 13:57 编辑
文本格式:1,1,583460.223,2726042.232,59.000
2,1,583464.991,2726037.856,59.000
3,1,583459.512,2726018.528,59.000
4,1,583455.460,2726018.159,59.000
每个文本的长度(行数)不等,但都是五列,都以逗号相隔,而且每个文本的
第五列的数值也是不一样的,就是想求个批处理,把文件夹内所有的文本的第
四列后面的内容删去(,数值),保存为原来文本名。
我想在输出时把第三列和第四列调换位置
作者: forfiles 时间: 2012-10-14 16:04
- gawk "BEGIN{FS=OFS=\",\"}NF-=1" a.txt >b.txt
复制代码
作者: QIAOXINGXING 时间: 2012-10-14 16:06
本帖最后由 QIAOXINGXING 于 2012-10-14 16:15 编辑
- @echo off
- md temp 2>nul
- for %%i in (*.txt) do (
- copy "%%~si" "temp/"
- (for /f "tokens=1-4 delims=," %%a in (temp/%%~nxsi) do (echo %%a,%%b,%%c,%%d))>"%%~si"
- )
-
- pause
复制代码
作者: 乱乱 时间: 2012-10-14 16:20
回复 3# QIAOXINGXING
呵呵,谢谢啦,我在for语句没有括号,弄得都是显示最后一行数据。
:handshake :handshake :handshake :handshake :handshake
作者: QIAOXINGXING 时间: 2012-10-16 17:22
话说如果修改了主楼的要求,最好标示出来。。。- @echo off
- md temp 2>nul
- for %%i in (*.txt) do (
- copy "%%~si" "temp/"
- (for /f "tokens=1-4 delims=," %%a in (temp/%%~nxsi) do (echo %%a,%%b,%%d,%%c))>"%%~si"
- )
- pause
复制代码
作者: forfiles 时间: 2012-10-16 17:56
删除尾列- sed "s/,[^,]\+$//" a.txt >b.txt
复制代码
作者: 乱乱 时间: 2012-10-16 18:12
我后面弄明白了,可能数据多了以为没有改!~~
还是谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |