Board logo

标题: [文本处理] [已解决]求助批处理删除文本中 第六列与第七列 [打印本页]

作者: KLL    时间: 2023-8-30 01:45     标题: [已解决]求助批处理删除文本中 第六列与第七列

本帖最后由 KLL 于 2023-8-30 13:23 编辑

文本中共8列 , 以逗号分隔 , 批处理删除 第六列与第七列
如下:
2023/08/01 23:50,15721,15722.25,15716.75,15717.75,3.25,-0.0207,997,
2023/08/01 23:55,15718,15719.75,15711,15717.5,-0.25,0.0016,1851,
2023/08/02 00:00,15717.25,15719,15714,15716.75,-0.75,1.048,534,

批处理删除后成为如下

2023/08/01 23:50,15721,15722.25,15716.75,15717.75,997,
2023/08/01 23:55,15718,15719.75,15711,15717.5,1851,
2023/08/02 00:00,15717.25,15719,15714,15716.75,534,
作者: KLL    时间: 2023-8-30 01:55

原文件a.txt  处理后 生成 b.txt 文件

谢谢
作者: Five66    时间: 2023-8-30 02:48

不考虑其他细节,应该是这样吧
  1. @for /f "tokens=1-5,6,7,* delims=," %%i in (a.txt) do @echo %%i,%%j,%%k,%%l,%%m,%%p >b.txt
复制代码

作者: hfxiang    时间: 2023-8-30 09:54

回复 1# KLL

用gawk(http://bcn.bathome.net/tool/5.1.0/gawk.exe)也可实现
  1. gawk -v"FS=," -v"OFS=," "{print $1,$2,$3,$4,$5,$8 FS}" a.txt>b.txt
复制代码

作者: 77七    时间: 2023-8-30 10:36

  1. @echo off
  2. (for /f "useback tokens=1-7* delims=," %%a in ("a.txt") do (
  3. echo %%a,%%b,%%c,%%d,%%e,%%h
  4. ))>"b.txt"
  5. pause
复制代码

作者: Batcher    时间: 2023-8-30 10:38

回复 1# KLL


请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. (for /f "tokens=1-8 delims=," %%a in (a.txt) do (
  4.     echo %%a,%%b,%%c,%%d,%%e,%%h,
  5. ))>b.txt
复制代码

作者: KLL    时间: 2023-8-30 13:04     标题: 【已解决】求助 删除文本中 第六列与第七列

本帖最后由 KLL 于 2023-8-30 13:18 编辑

运行都OK , 谢谢先进们的热心指导,Thanks
作者: Nsqs    时间: 2023-8-30 14:52

  1. @echo off
  2. powershell -noprofile -executionpolicy bypass "(gc 1.txt) -replace '((?:\d+\.?\d*,){5}).+,(.+)','$1$2'" >new.txt
  3. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2