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

[文本处理] 批处理怎样删除纯数字5位和5位以上的行?

[复制链接]
发表于 2010-10-27 03:55:32 | 显示全部楼层 |阅读模式
TXT内容:
游戏 ab
655441111
123
1 9
56321
1 a
1234
游戏 1
123365411555454
5 go走
vv 10000

得到新TXT 内容
游戏 ab
123
1 9
1 a
1234
游戏 1
5 go走
vv 10000

只删除纯数字 有空的纯数字 只要有5位的 都删除  比如:1 10000      或99 6555555 05    这2个词

有劳各位  先谢谢了
发表于 2010-10-27 06:23:36 | 显示全部楼层
xxx.txt内容:
  1. 游戏 ab
  2. 655441111
  3. 123
  4. 1 9
  5. 56321
  6. 1 a
  7. 1234
  8. 游戏 1
  9. 123365411555454
  10. 5 go走
  11. vv 10000
  12. 1 10000
  13. 99 6555555 05   
复制代码
  1. grep -v "^[0-9]* \?[0-9 ]*[0-9]\{5,\}[0-9 ]*$" xxx.txt
复制代码
发表于 2010-10-27 08:20:26 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in ('findstr /v [0-9][0-9][0-9][0-9][0-9] a.txt') do echo %%a
  3. pause
复制代码
发表于 2010-10-27 11:25:07 | 显示全部楼层
findstr 不能实现该目的,
如 :
99 游戏 6555555
 楼主| 发表于 2010-10-27 13:23:04 | 显示全部楼层

谢谢

确实 啊  2楼的朋友  代码没反应  我有grep.exe 文件 保存你的代码为bat  无反映   
3楼的确实如4楼说的
继续请教
发表于 2010-10-27 18:07:50 | 显示全部楼层
G:\DOS>grep --ver
grep (GNU grep) 2.5.1
我这里运行好好的呀,怎么会没反应??
发表于 2010-10-27 18:09:45 | 显示全部楼层
检查版本和path.

20202020
 楼主| 发表于 2010-10-27 19:10:36 | 显示全部楼层

回复 7楼 的帖子

我目前只有grep.exe 文件  但是看不到版本啊   我把这文件放在bat同一个文件夹里    能帮我把你测试的代码和需要使用的程序打包后传到论坛么  谢谢
发表于 2010-10-27 19:17:14 | 显示全部楼层

回复 8楼 的帖子

不要双击运行
到命令行里面去
把@echo off删掉
在合适的地方加上pause
看看执行过程再好好想想
如果想不通
就把执行过程贴出来让别人帮你讲解
 楼主| 发表于 2010-10-27 21:46:35 | 显示全部楼层

回复 9楼 的帖子

.........................头都大了   实在无法     就凑合使用吧。。。。。。 谢谢
发表于 2011-6-11 21:34:29 | 显示全部楼层

  1. findstr /v "^[0-9][0-9][0-9]*[0-9][0-9][0-9]$" a.txt
复制代码
发表于 2011-6-11 22:38:26 | 显示全部楼层
  1. perl -lane "print if not $_ =~ /[0-9]{5,}/" a.txt
复制代码
发表于 2011-6-12 00:12:03 | 显示全部楼层
findstr /b /v "[0-9][0-9][0-9][0-9][0-9]*" a.txt
发表于 2011-6-12 08:38:43 | 显示全部楼层
本帖最后由 lvsehuaxue 于 2011-6-12 08:40 编辑

13# 我是马甲
楼上的不行,如果是纯4位数也被过滤。再如,123456aaaa也会被过滤。
发表于 2015-4-1 15:57:22 | 显示全部楼层
本帖最后由 pcl_test 于 2015-4-1 16:01 编辑

回复 1# w1983912
  1. @@echo off & setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in ('type "测试.txt"') do (
  3. set "str=%%a"
  4. set "str=!str: =!"
  5. set "word=!str!ж"
  6. for /l %%b in (0 1 9) do set "word=!word:%%b=!"
  7. if not "!word!" == "ж" (
  8. echo,%%a
  9. ) else if "!str:~4,1!" == "" echo,%%a
  10. ))>"结果.txt"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 11:23 , Processed in 0.031497 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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