找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18682|回复: 6

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

[复制链接]
发表于 2023-4-13 09:32:48 | 显示全部楼层 |阅读模式
删除文本数字行?文本有千万数据?

文本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
发表于 2023-4-13 09:44:08 | 显示全部楼层
回复 1# idc878787


http://bcn.bathome.net/s/tool/index.html?key=grep
  1. grep -vE "^[-0-9]+.xmk$" 1.txt > 2.txt
复制代码
 楼主| 发表于 2023-4-13 10:07:59 | 显示全部楼层
回复 2# Batcher


多谢
发表于 2023-4-13 19:50:32 | 显示全部楼层
  1. findstr /ivb "1 2 3 4 5 6 7 8 9 0" a.txt>>b.txt
复制代码
发表于 2023-4-13 20:03:18 | 显示全部楼层
回复 4# hlzj88


我猜楼主的千万数据里面有类似这样的需要保留:
1a.xmk
发表于 2023-4-14 09:18:47 | 显示全部楼层
使用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
复制代码
发表于 2023-4-14 09:25:13 | 显示全部楼层
findstr中的所谓“一般表达式”使用起来比较别扭,还是使用其它语言的正则表达式比较顺手且不是一般的强大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 01:02 , Processed in 0.016773 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表