Board logo

标题: [文本处理] [已解决]批处理如何去掉txt每行最后的逗号? [打印本页]

作者: smith203    时间: 2011-4-6 18:36     标题: [已解决]批处理如何去掉txt每行最后的逗号?

如题, 增加逗号我会, 不过如何去掉逗号怎么弄?

df,ddf,45,
dsfdg,
45,sdfd,

只去掉最后的逗号。
作者: hanyeguxing    时间: 2011-4-6 19:08

忽略敏感字符的问题:
  1. @echo off&setlocal enableDelayedExpansion
  2. (for /f "delims=" %%a in (1.txt) do (
  3. set "a=%%a"
  4. if "!a:~-1!"=="," set a=!a:~0,-1!
  5. echo;!a!
  6. ))>1_.txt
复制代码

作者: hfg1977    时间: 2011-4-7 00:55

  1. sed "s/\(.*\)\(,\)$/\1/" "1.txt"
复制代码

作者: CrLf    时间: 2011-4-7 12:47

本帖最后由 zm900612 于 2011-4-7 13:13 编辑
  1. @echo off&setlocal enableDelayedExpansion
  2. (for /f "delims=" %%a in (1.txt) do (
  3.         set "a=%%a啊哈"
  4.         set "a=!a:,啊哈=啊哈!"
  5.         echo;!a:啊哈=!
  6. ))>1_.txt
复制代码

作者: smith203    时间: 2011-4-10 13:22

谢谢, 我觉得delims=后面总要跟点东西, 你这样后面什么都没有, 请问代表什么啊?
作者: hanyeguxing    时间: 2011-4-10 13:35

本帖最后由 hanyeguxing 于 2011-4-10 13:42 编辑

5# smith203


指定for /f不以默认的分隔符分隔,即无分隔符
作者: smith203    时间: 2011-4-10 13:48

谢谢, 明白了。
作者: Batcher    时间: 2011-4-10 13:53

3# hfg1977
  1. sed "s/,$//" a.txt
复制代码

作者: Batcher    时间: 2011-4-10 13:55

7# smith203


你找个包含感叹号的文件试试?




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