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

[文本处理] [已解决]BAT如何提取一行中特殊的字符串?

[复制链接]
发表于 2013-10-6 16:07:09 | 显示全部楼层 |阅读模式
本帖最后由 ouch1983 于 2013-10-8 20:42 编辑

请教如何将如下数据文件a.txt
......
CN  - ---US1111111111---          A1 20130822 DW201358  
  CN  - ---EUxxxxxxxxxxx---         A1 20130725 DW201352  
  CN  - EP2222222222         A1 20130725 DW201352  
  CN  - DE8888888              B1 20130723 DW201350  
  CN  - ---FRxxxxxxx---              B1 20130716 DW201348
.......
中的:
US1111111111
EUxxxxxxxxxxx
...
FRxxxxxxx
...
部分提取出来。难点在需提取出的部分长度不固定,我尝试写了如下代码,但是得不到期望的文件:
  1. @echo off
  2. (for /f "tokens=2 delims=-" %%a in (b.txt) do (
  3.   for /f "delims=-" %%b in ("%%a") do echo %%b
  4. ))>c.txt
  5. start c.txt
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-10-6 16:47:48 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=2 delims=- " %%a in (b.txt) do echo %%a
  3. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-10-6 17:25:21 | 显示全部楼层
本帖最后由 ouch1983 于 2013-10-6 21:37 编辑

原问题已解决,再追加一个问题,多谢。
由于生成的如下字符串较多,请问如何可使其按照80个分一段,段与段之间空一行?
US1111111111,EUxxxxxxxxxxx,......,FRxxxxxxx,......
发表于 2013-10-6 23:24:35 | 显示全部楼层
回复 3# ouch1983


   
本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出有针对性的样本。

请另开主题贴,把要求描述清楚
发表于 2013-10-8 21:37:06 | 显示全部楼层
回复 1# ouch1983
  1. sed -r "s/^[^-]+[- ]+([a-zA-Z0-9]+).*/\1/" a.txt > b.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 17:27 , Processed in 0.031392 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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