[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何删除文本数字行?文本有千万数据?

删除文本数字行?文本有千万数据?

文本a.txt  内容如下

yyghsw.xmk
gzugo.xmk
hzjxwuliu.xmk
34599.xmk
kubiao100.xmk
34554-3453.xmk
adverthk.xmk
45645-7657.xmk
cn-xqwl.xmk
4335499.xmk

删除下面的这4行 怎么写?
34599.xmk
34554-3453.xmk
45645-7657.xmk
4335499.xmk

回复 1# idc878787


http://bcn.bathome.net/s/tool/index.html?key=grep
  1. grep -vE "^[-0-9]+.xmk$" 1.txt > 2.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


多谢

TOP

  1. findstr /ivb "1 2 3 4 5 6 7 8 9 0" a.txt>>b.txt
复制代码
目的,学习批处理

TOP

回复 4# hlzj88


我猜楼主的千万数据里面有类似这样的需要保留:
1a.xmk
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

使用findstr可以这样。
1.如果数字行最多只有一个短横分隔且短横位于数字与数字之间,可以进行精确表达:
  1. findstr /xv "[0-9][0-9]*.xmk [0-9][0-9]*-[0-9][0-9]*.xmk" 1.txt>2.txt
复制代码
2.如果存在多个短横,就不能精确表达,大致这样:
  1. findstr /xv "[0-9].xmk [0-9][-0-9]*[0-9].xmk" 1.txt>2.txt
复制代码

TOP

findstr中的所谓“一般表达式”使用起来比较别扭,还是使用其它语言的正则表达式比较顺手且不是一般的强大。

TOP

返回列表