Board logo

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

作者: ouch1983    时间: 2013-10-6 16:07     标题: [已解决]BAT如何提取一行中特殊的字符串?

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

作者: apang    时间: 2013-10-6 16:47

  1. @echo off
  2. for /f "tokens=2 delims=- " %%a in (b.txt) do echo %%a
  3. pause
复制代码

作者: ouch1983    时间: 2013-10-6 17:25

本帖最后由 ouch1983 于 2013-10-6 21:37 编辑

原问题已解决,再追加一个问题,多谢。
由于生成的如下字符串较多,请问如何可使其按照80个分一段,段与段之间空一行?
US1111111111,EUxxxxxxxxxxx,......,FRxxxxxxx,......
作者: apang    时间: 2013-10-6 23:24

回复 3# ouch1983


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

请另开主题贴,把要求描述清楚
作者: DAIC    时间: 2013-10-8 21:37

回复 1# ouch1983
  1. sed -r "s/^[^-]+[- ]+([a-zA-Z0-9]+).*/\1/" a.txt > b.txt
复制代码





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