标题: [文本处理] 【已解决】求助批处理如何删除文件中最后一个 逗号字符? [打印本页]
作者: antyison 时间: 2015-2-14 14:02 标题: 【已解决】求助批处理如何删除文件中最后一个 逗号字符?
本帖最后由 antyison 于 2015-2-15 23:14 编辑
文本文件是这样的,类似的文件有很多,我想删除最后一个逗号字符
SELECT
ID ,
CONTROL_ID ,
USER_ID ,
ATTRIBUTE_01 ,
ATTRIBUTE_02 ,
FROM
COMPONENT_CONFIGS;
删除后变成
SELECT
ID ,
CONTROL_ID ,
USER_ID ,
ATTRIBUTE_01 ,
ATTRIBUTE_02
FROM
COMPONENT_CONFIGS;
请大师指点。
作者: 愤怒的CMD 时间: 2015-2-14 14:09
如果文本只是这样就简单了- @echo off
- for /f "tokens=1 delims=," %%i in (1.txt) do echo %%i
- pause
复制代码
作者: antyison 时间: 2015-2-14 14:24
回复 2# 愤怒的CMD
这样操作会把所有的逗号全删掉,而我只需要删除整个文件中的最后一个,其余的还是要保留的。
作者: 愤怒的CMD 时间: 2015-2-14 14:44
回复 3# antyison - @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (1.txt) do (
- set a=%%i
- if "!a:~-1!"=="," (echo !a:~0,-1!) else (echo !a!)
- )
- pause
复制代码
作者: antyison 时间: 2015-2-14 14:50
本帖最后由 antyison 于 2015-2-14 14:54 编辑
回复 4# 愤怒的CMD
额,测了一下,还是把所有逗号全删掉了... ...
如果从逻辑关系上算,删除FROM前的一个逗号也是可以的。
作者: 愤怒的CMD 时间: 2015-2-14 14:58
回复 5# antyison
我测试没有问题啊。你试试
作者: antyison 时间: 2015-2-14 15:09
回复 6# 愤怒的CMD
在我的机器执行了一下。。。
作者: yiwuyun 时间: 2015-2-14 15:10
- sed i.txt "N;s/,\nFROM/\nFROM/;P;D" 1.txt
复制代码
作者: pcl_test 时间: 2015-2-14 15:14
本帖最后由 pcl_test 于 2015-2-14 15:44 编辑
回复 1# antyison
把批处理跟txt文件放在一起运行,测试前先备份原文件- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /b *.txt') do (
- for /f "tokens=1* delims=:" %%i in ('findstr /e /n "," "%%a"') do set m=%%i
- set n=1
- for /f "delims=" %%s in ('type "%%a"') do (
- set "str=%%s"
- if !n! == !m! (
- >>$ echo,!str:~0,-1!
- ) else (
- >>$ echo,!str!
- )
- set /a n+=1
- )
- move $ "%%a"
- )
- pause
复制代码
作者: 愤怒的CMD 时间: 2015-2-14 15:14
复制代码
作者: antyison 时间: 2015-2-14 15:29
回复 10# 愤怒的CMD
非常感谢你的回复,windows的sed命令好像需要单独下载一下。9楼的方案已经可以解决我的问题,还是非常感谢:)
作者: pcl_test 时间: 2015-2-14 18:05
回复 1# antyison
如果问题解决请在标题最前面标上【已解决】
http://www.bathome.net/thread-3473-1-1.html
作者: DAIC 时间: 2015-2-16 10:31
回复 11# antyison
是的,这里可以下载:
http://bbs.bathome.net/thread-3981-1-1.html
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |