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

[文本处理] [已解决]BAT脚本如何批量处理,删除文本的最后一列数据?

[复制链接]
发表于 2012-10-14 15:20:52 | 显示全部楼层 |阅读模式
本帖最后由 乱乱 于 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
每个文本的长度(行数)不等,但都是五列,都以逗号相隔,而且每个文本的
第五列的数值也是不一样的,就是想求个批处理,把文件夹内所有的文本的第
四列后面的内容删去(,数值),保存为原来文本名。

我想在输出时把第三列和第四列调换位置

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-10-14 16:04:33 | 显示全部楼层
  1. gawk "BEGIN{FS=OFS=","}NF-=1" a.txt >b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2012-10-14 16:06:06 | 显示全部楼层
本帖最后由 QIAOXINGXING 于 2012-10-14 16:15 编辑
  1. @echo off
  2. md temp 2>nul
  3. for %%i in (*.txt) do (
  4. copy "%%~si"  "temp/"
  5. (for /f "tokens=1-4 delims=," %%a in (temp/%%~nxsi) do (echo %%a,%%b,%%c,%%d))>"%%~si"
  6. )

  7. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-10-14 16:20:03 | 显示全部楼层
回复 3# QIAOXINGXING


    呵呵,谢谢啦,我在for语句没有括号,弄得都是显示最后一行数据。
:handshake :handshake :handshake :handshake :handshake
发表于 2012-10-16 17:22:20 | 显示全部楼层
话说如果修改了主楼的要求,最好标示出来。。。
  1. @echo off
  2. md temp 2>nul
  3. for %%i in (*.txt) do (
  4. copy "%%~si"  "temp/"
  5. (for /f "tokens=1-4 delims=," %%a in (temp/%%~nxsi) do (echo %%a,%%b,%%d,%%c))>"%%~si"
  6. )
  7. pause
复制代码
发表于 2012-10-16 17:56:28 | 显示全部楼层
删除尾列
  1. sed "s/,[^,]\+$//" a.txt >b.txt
复制代码
 楼主| 发表于 2012-10-16 18:12:52 | 显示全部楼层
我后面弄明白了,可能数据多了以为没有改!~~
还是谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 17:54 , Processed in 0.021406 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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