Board logo

标题: [文本处理] 【已解决】求助批处理如何删除文件中最后一个 逗号字符? [打印本页]

作者: 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

如果文本只是这样就简单了
  1. @echo off
  2. for /f "tokens=1 delims=," %%i in (1.txt) do echo %%i
  3. pause
复制代码

作者: antyison    时间: 2015-2-14 14:24

回复 2# 愤怒的CMD


    这样操作会把所有的逗号全删掉,而我只需要删除整个文件中的最后一个,其余的还是要保留的。
作者: 愤怒的CMD    时间: 2015-2-14 14:44

回复 3# antyison
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do (
  3.     set a=%%i
  4.     if "!a:~-1!"=="," (echo !a:~0,-1!) else (echo !a!)
  5. )
  6. 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

  1. 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文件放在一起运行,测试前先备份原文件
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b *.txt') do (
  4. for /f "tokens=1* delims=:" %%i in ('findstr /e /n "," "%%a"') do set m=%%i
  5. set n=1
  6. for /f "delims=" %%s in ('type "%%a"') do (
  7. set "str=%%s"
  8. if !n! == !m! (
  9. >>$ echo,!str:~0,-1!
  10. ) else (
  11. >>$ echo,!str!
  12. )
  13. set /a n+=1
  14. )
  15. move $ "%%a"
  16. )
  17. pause
复制代码

作者: 愤怒的CMD    时间: 2015-2-14 15:14

  1. sed "s/,$//g" 1.txt
复制代码

作者: 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