标题: [文本处理] [已解决]批处理如何删除该逗号? [打印本页]
作者: KLL 时间: 2010-7-13 14:30 标题: [已解决]批处理如何删除该逗号?
请教一文本数百行如何删除文本内 " 符号之间的逗点
如下
11601,22998,"85,000",17665,24558,12556
使成为
11601,22998,"85000",17665,24558,12556
感谢
[ 本帖最后由 KLL 于 2010-7-19 02:34 编辑 ]
作者: hfg1977 时间: 2010-7-13 19:07
引号是特殊字符,需要一个替换再还原的过程.
下面代码使用前提: a.txt每行只有一对 ""- @echo off
- setlocal enabledelayedexpansion&cls
- ::==============================================================
- :start
- for /f "tokens=1,2,3* usebackq delims=" %%a in ("a.txt") do (
- set "fline=%%a"
- set "fline=!fline:"=☆!"
- for /f "tokens=1,2,3* delims=☆" %%i in ("!fline!") do (
- set "a1=%%j"
- set "a1=!a1:,=!"
- echo %%i"!a1!"%%k>>youfile.txt
- )
- )
复制代码
作者: CUer 时间: 2010-7-13 20:57
- sed "s/\(\"[0-9]\+\),\([0-9]\+\"\)/\1\2/g" 1.txt >2.txt
复制代码
作者: KLL 时间: 2010-7-13 21:40
感谢您的帮助
抱歉是我表达题意未清楚
原
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对 "" 特殊字符
请教该如
作者: hfg1977 时间: 2010-7-14 10:31
- @echo off
- setlocal enabledelayedexpansion&cls
- ::==============================================================
- :start
- for /f "tokens=1* usebackq delims=" %%A in ("a.txt") do (
- set "aa=%%A"
- set "aa=!aa:”="!"
- )
- for /f "tokens=1-25" %%a in ("%aa%") do echo %%a%%b%%c%%d%%e%%f%%g%%h%%i%%j
- for /f "tokens=1-25" %%a in ("!aa!") do echo %%a%%b%%c%%d%%e%%f%%g%%h%%i%%j
复制代码
自己看结果
你的什么文本呀 竟然一半中文引号一半英文 真晕人呀 怀疑手打错误.
sed 对这种不确定情况也不好处理.
作者: KLL 时间: 2010-7-18 11:38
运行后尚无法解决
我将文本上传
作者: terse 时间: 2010-7-18 13:25
- @echo off&setlocal enabledelayedexpansion
- for /f "usebackq delims=" %%a in ("a.txt") do (
- for %%b in (%%a) do (
- for /f "tokens=1* delims=," %%c in ("%%b") do (
- if "%%d" neq "" (
- set str=%%c%%d
- set var=!var!,!str:,=!
- )else set var=!var!,%%c
- )
- )
- echo!var!&set "var="
- )
- pause
复制代码
作者: KLL 时间: 2010-7-19 00:28
完全正确,感谢terse兄指导,
烦请帮忙将屏幕上显示的,生成new.txt
谢谢
作者: terse 时间: 2010-7-19 01:45
原帖由 KLL 于 2010-7-19 00:28 发表
完全正确,感谢terse兄指导,
烦请帮忙将屏幕上显示的,生成new.txt
谢谢
- (for /f "usebackq ........
- ......
- ... echo!var!&set "var="
- ))>new.txt
复制代码
作者: KLL 时间: 2010-7-19 02:25 标题: [已解决]批处理如何删除该逗号?
夜里了,
非常感谢terse兄之完整相助.
谢谢
[已解决]
作者: lvsehuaxue 时间: 2011-5-24 19:18
本帖最后由 lvsehuaxue 于 2011-5-24 19:24 编辑
简单些- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- for %%i in (%%a) do set "v=%%i"&set "s=!s!!v:,=!,"
- echo !s:~,-1!&set s=
- )
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |