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

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

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个词

有劳各位  先谢谢了

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
复制代码

TOP

  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
复制代码

TOP

findstr 不能实现该目的,
如 :
99 游戏 6555555

TOP

谢谢

确实 啊  2楼的朋友  代码没反应  我有grep.exe 文件 保存你的代码为bat  无反映   
3楼的确实如4楼说的
继续请教

TOP

G:\DOS>grep --ver
grep (GNU grep) 2.5.1
我这里运行好好的呀,怎么会没反应??

TOP

检查版本和path.

20202020

TOP

回复 7楼 的帖子

我目前只有grep.exe 文件  但是看不到版本啊   我把这文件放在bat同一个文件夹里    能帮我把你测试的代码和需要使用的程序打包后传到论坛么  谢谢

TOP

回复 8楼 的帖子

不要双击运行
到命令行里面去
把@echo off删掉
在合适的地方加上pause
看看执行过程再好好想想
如果想不通
就把执行过程贴出来让别人帮你讲解
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9楼 的帖子

.........................头都大了   实在无法     就凑合使用吧。。。。。。 谢谢

TOP

  1. findstr /v "^[0-9][0-9][0-9]*[0-9][0-9][0-9]$" a.txt
复制代码

TOP

  1. perl -lane "print if not $_ =~ /[0-9]{5,}/" a.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

findstr /b /v "[0-9][0-9][0-9][0-9][0-9]*" a.txt
隐藏秘密最好的方法是把秘密当笑话说给所有人听。

TOP

本帖最后由 lvsehuaxue 于 2011-6-12 08:40 编辑

13# 我是马甲
楼上的不行,如果是纯4位数也被过滤。再如,123456aaaa也会被过滤。

TOP

本帖最后由 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"
复制代码

TOP

返回列表