Board logo

标题: [文本处理] [已解决]批处理如何删除TXT里没有连续数字的行? [打印本页]

作者: liziyunabcd    时间: 2019-12-25 23:52     标题: [已解决]批处理如何删除TXT里没有连续数字的行?

一个很大的TXT里,有很多行,大多数行里有连续的数字,连续4个到10几个不等,有连续数字的行都要保留,删除没有连续数字的行。

例如:

maoyi44589/-3-5
yaomaoy4464/-3-5
zhuyou/-5-5

要求:删除第三行这种没有连续数字的行。

   求大神相助。:handshake
作者: /zhqsystem/zhq    时间: 2019-12-26 00:05

/前边是俩数字或是以上吗?
作者: liziyunabcd    时间: 2019-12-26 15:07

回复 2# /zhqsystem/zhq


    对啊,大神· :handshake ···有解决方案吗:?
作者: liziyunabcd    时间: 2019-12-26 15:09

回复 2# /zhqsystem/zhq

我在网上搜了好几天,都找不到类似的代码···头都大了·
作者: cfwyy77_bat    时间: 2019-12-26 16:30

sed 了解一下?
  1. sed -E '/[0-9]{2,}/!d' 1.txt
复制代码

作者: liziyunabcd    时间: 2019-12-26 16:47

回复 5# cfwyy77_bat
大神,有没有BAT。VBS之类的代码?

SED一点也不了解
作者: /zhqsystem/zhq    时间: 2019-12-26 22:44

回复 4# liziyunabcd
  1. SetLocal EnableDelayedExpansion
  2. for /l %%n in (0,1,9)do for /l %%o in (0,1,9)do set "数字链%%n%%o=%%n%%o"
  3. for /f "delims=" %%i in ('type "%~f1"')do (
  4. for /f "tokens=1,* delims=/" %%j in ("%%i")do (
  5. set "#=%%j"&set "$="
  6. for /f "tokens=1,* delims==" %%y in ('set 数字链')do if /i not "!#:%%z=!"=="!#!" set "$=ture"
  7. if defined $ (
  8. >>"正常数据_%~n1.txt" echo,%%i
  9. )else (
  10. >>"异常数据_%~n1.txt" echo,%%i
  11. )
  12. )
  13. )
复制代码

作者: liziyunabcd    时间: 2019-12-26 22:50

回复 7# /zhqsystem/zhq

跪拜大神 ··太牛了!
作者: /zhqsystem/zhq    时间: 2019-12-26 22:55

回复 8# liziyunabcd

别急着膜拜,这个有BUG的,只要斜杠前边有两个数字,不管在哪都会成功运行 示例:12qwert 这种也会判定正确的,纯批有要求,不要有特殊字符




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