Board logo

标题: [文本处理] 批处理如何删除文本中行首第一个字符/行尾最后一个字符为指定字符的行 [打印本页]

作者: lxj    时间: 2009-1-5 20:08     标题: 批处理如何删除文本中行首第一个字符/行尾最后一个字符为指定字符的行

本帖最后由 pcl_test 于 2016-9-13 16:53 编辑

求助文本行里删除最后一位合条件的批处理
比如:
1-3
12.
12a
13.
1.5
12-
12_
4_0
780

如上面一样,整个文本全是这种排列.我想要去掉12. 12_ 12-  这三种最后一位以.-和_结尾的,并删除整行.得到如下结果
1-3
12a
1.5
4_0
780

请大家帮帮我.谢谢了.
作者: tireless    时间: 2009-1-5 20:21

  1. findstr "[^\.\-_]$" a.txt>a_new.txt
复制代码

作者: lxj    时间: 2009-1-6 09:28

谢谢了,已经成功去掉,还想咨询一下,能不能把这三位要是在第一位时,也整行去掉?
作者: namejm    时间: 2009-1-6 10:05

  1. @echo off
  2. findstr /b "[^\.\-_]" test.txt>new.txt
  3. pause
复制代码

作者: tireless    时间: 2009-1-6 10:18     标题: 回复 3楼 的帖子

单独去头:
  1. findstr "^[^\.\-_]" a.txt > 去头.txt
复制代码
去头尾:
  1. findstr "[^\.\-_]$" a.txt|findstr "^[^\.\-_]" > 去头尾.txt
复制代码

作者: lxj    时间: 2009-1-6 11:47

谢谢楼上两位,已经搞掂了.
再次感谢.

[ 本帖最后由 lxj 于 2009-1-6 13:01 编辑 ]
作者: namejm    时间: 2009-1-6 12:04

  对正常讨论的帖子,论坛不会锁定,就算已经解决了你自己的问题,但是,其他人可能还有更好的办法,或者有其他的疑问,还有可能继续讨论下去——因为一个帖子发出来之后,它的意义已经不仅仅是为了解决你自己的问题,对别人同样有启发意义,请楼主多为他人作想。
作者: lxj    时间: 2009-1-6 12:53

出了怪事,早上运行成功去掉头尾,现在想重新试一下,居然不行了.
  1. findstr "[^\.\-_]$" a.txt>a_new.txt
复制代码
另存为.bat运行后,得到的a_new.txt是空的.

在这之前,我运行了
  1. findstr /b "[^\a]" test.txt>new.txt
复制代码
去掉了开头为a的全部.
作者: lxj    时间: 2009-1-6 13:00

  1. @echo off
  2. findstr /b "[^\.\-_]" test.txt>new.txt
  3. pause
复制代码
加上上面和下面两行就可以了,奇怪的是早上没加也可以啊.晕.




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