[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何删除该逗号?

请教一文本数百行如何删除文本内 " 符号之间的逗点
如下
11601,22998,"85,000",17665,24558,12556

使成为

11601,22998,"85000",17665,24558,12556

感谢

[ 本帖最后由 KLL 于 2010-7-19 02:34 编辑 ]

引号是特殊字符,需要一个替换再还原的过程.
下面代码使用前提: a.txt每行只有一对 ""
  1. @echo off
  2. setlocal enabledelayedexpansion&cls
  3. ::==============================================================
  4. :start
  5. for /f "tokens=1,2,3* usebackq delims=" %%a in ("a.txt") do (
  6. set "fline=%%a"
  7. set "fline=!fline:"=☆!"
  8. for /f "tokens=1,2,3* delims=☆" %%i in ("!fline!") do (
  9. set "a1=%%j"
  10. set "a1=!a1:,=!"
  11. echo %%i"!a1!"%%k>>youfile.txt
  12. )
  13. )
复制代码

TOP

  1. sed "s/\(\"[0-9]\+\),\([0-9]\+\"\)/\1\2/g" 1.txt >2.txt
复制代码

TOP

感谢您的帮助
抱歉是我表达题意未清楚


62206,三阳,"50,642,000”,"2,890”,"375,923,650”,36.15,16.70,16.00,16.55

处理后
62206,三阳,"50642000”,"2890”,"375923650”,36.15,16.70,16.00,16.55

因每行有2或3对 "" 特殊字符

请教该如

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion&cls
  3. ::==============================================================
  4. :start
  5. for /f "tokens=1* usebackq delims=" %%A in ("a.txt") do (
  6. set "aa=%%A"
  7. set "aa=!aa:”="!"
  8. )
  9. for /f "tokens=1-25" %%a in ("%aa%") do echo %%a%%b%%c%%d%%e%%f%%g%%h%%i%%j
  10. for /f "tokens=1-25" %%a in ("!aa!") do echo %%a%%b%%c%%d%%e%%f%%g%%h%%i%%j
复制代码
自己看结果
你的什么文本呀 竟然一半中文引号一半英文 真晕人呀 怀疑手打错误.
sed 对这种不确定情况也不好处理.

TOP

运行后尚无法解决
我将文本上传

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "usebackq delims=" %%a in ("a.txt") do (
  3.     for %%b in (%%a) do (
  4.         for /f "tokens=1* delims=," %%c in ("%%b") do (
  5.             if "%%d" neq "" (
  6.                set str=%%c%%d
  7.                set var=!var!,!str:,=!
  8.             )else set var=!var!,%%c
  9.         )
  10.     )
  11.     echo!var!&set "var="
  12. )                  
  13. pause
复制代码

TOP

完全正确,感谢terse兄指导,
烦请帮忙将屏幕上显示的,生成new.txt
谢谢

TOP

原帖由 KLL 于 2010-7-19 00:28 发表
完全正确,感谢terse兄指导,
烦请帮忙将屏幕上显示的,生成new.txt
谢谢
  1. (for /f "usebackq ........
  2. ......
  3. ... echo!var!&set "var="
  4. ))>new.txt
复制代码

TOP

[已解决]批处理如何删除该逗号?

夜里了,
非常感谢terse兄之完整相助.
谢谢
[已解决]

TOP

本帖最后由 lvsehuaxue 于 2011-5-24 19:24 编辑

简单些
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.     for %%i in (%%a) do  set "v=%%i"&set "s=!s!!v:,=!,"
  4.     echo !s:~,-1!&set s=
  5. )
复制代码

TOP

返回列表