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

[文本处理] 批处理如何在文本中提取有一定规律的数字?

[复制链接]
发表于 2012-9-6 18:34:21 | 显示全部楼层 |阅读模式
文本文件A.TXT中有字符、数字、汉字,我想提取特定的数字,这些数字都是500开头,且是连续的18位,如何将这些数字提取出来存入B.TXT呢。
在B.TXT中数字存放的格式如下
500123456789012345
500111111111111111
......

谢谢各位高手了,我是批处理的白痴,我以前在《电脑爱好者》上有看到一篇文章介绍过,但多方查找也没有找到,却找到了这个高手云集的地方,所以向各位求助了,在此先感谢各位高手了,要不一个一个的找实在是顶不住啊!如果有什么表述不清楚的,我再补充。
发表于 2012-9-6 19:13:48 | 显示全部楼层
findstr "^500[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" a.txt>b.txt
 楼主| 发表于 2012-9-6 21:31:56 | 显示全部楼层
回复 2# CrLf


    老师,不行啊,不能把提取出的字符存到b.txt啊,我是WIN7旗舰版,不知道与系统有关吗?
发表于 2012-9-6 22:52:02 | 显示全部楼层
本帖最后由 FOR 于 2012-9-6 22:53 编辑

文本规律的描述还应该更详细点
比如:每行中是不是只有这18个数字,还是会出现一行中除了18个数字外还有被其它汉字等字符隔开的数字
再比如,除了这18个数字是500开头,是否还有其它500字样?
比如:abc你好500哦的500123456789012345哈哈哈
2楼代码无法满足你是因为他处理的是每行以500开头的数据,而我理解你的500并不一定在行的开头。
 楼主| 发表于 2012-9-7 16:28:24 | 显示全部楼层
回复 4# FOR

感谢楼上的老师:
每行中还有其他数字,但是其他数字都不超过3位,且都不以500开头(只有我需要的数字是以500开头)。我需要的这段数字在文本中的位置不固定,并不在每行的开头,甚至文本的分段分行也是没有规律的。
发表于 2012-9-7 16:40:41 | 显示全部楼层
回复 5# 在前进路上


    能否把A.TXT压缩之后上传到顶楼?
发表于 2012-9-7 17:41:05 | 显示全部楼层
本帖最后由 FOR 于 2012-9-7 17:57 编辑
  1. @echo off
  2. (for /f "delims=" %%i in (a.txt) do (
  3.         set "str=%%i"
  4.         setlocal enabledelayedexpansion
  5.         set "str=!str: =!"
  6.         set "str=!str:500= !"
  7.         set "str=!str:* =!"
  8.         set "str=!str: =500!"
  9.         set "str=500!str:~0,15!"
  10.         echo;!str!
  11.         endlocal
  12. ))>b.txt
  13. pause
复制代码
发表于 2012-9-17 17:16:32 | 显示全部楼层
将该批处理放在a.txt所在的目录。
  1. sed '/500[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ w b.txt' a.txt
  2. start b.txt
复制代码
发表于 2012-9-17 17:55:29 | 显示全部楼层
  1. sed -n "/500[0-9]\{15\}/p" b.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 04:11 , Processed in 0.016493 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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