Board logo

标题: [文本处理] (已解决)批处理如何只提取文本行中日期前面的数字号码? [打印本页]

作者: mick00034    时间: 2014-4-6 17:25     标题: (已解决)批处理如何只提取文本行中日期前面的数字号码?

本帖最后由 pcl_test 于 2016-8-6 21:06 编辑

批处理如何只提取日期前面的号码?
因日期有不同月份的,可以忽略,按年划分就好了。像下面只保留;2014前面的数字号码。

#Tel-Num;Start-Tm1;Length1;CallFee1;Attendant-Num;Start-Tm2;Length2;CallFee2;ReportData;
13737557313;2014-04-05 21:34:54;214;1.944;;;0;0.0;;
13929061961;2014-04-05 21:33:45;214;1.944;;;0;0.0;;
13712285063;2014-04-05 21:35:26;32;0.324;;;0;0.0;;
18657400527;;0;0.0;;;0;0.0;;
13858324581;;0;0.0;;;0;0.0;;
13862630530;2014-04-05 21:35:02;25;0.27;;;0;0.0;;
15026819132;;0;0.0;;;0;0.0;;
15201760417;;0;0.0;;;0;0.0;;
15903255925;;0;0.0;;;0;0.0;;
15117354917;;0;0.0;;;0;0.0;;
13958834379;2014-04-05 21:32:28;150;1.35;;;0;0.0;;
15880204414;;0;0.0;;;0;0.0;;
15555868448;;0;0.0;;;0;0.0;;
18792227990;;0;0.0;;;0;0.0;;
15954174367;2014-04-05 21:33:21;68;0.648;;;0;0.0;;
15145433828;;0;0.0;;;0;0.0;;
15250986555;;0;0.0;;;0;0.0;;
15016813782;;0;0.0;;;0;0.0;;
13699336282;2014-04-05 21:33:36;40;0.378;;;0;0.0;;
15514581852;;0;0.0;;;0;0.0;;
13656507275;2014-04-05 21:31:14;172;1.566;;;0;0.0;;
15025186790;;0;0.0;;;0;0.0;;
15017092240;;0;0.0;;;0;0.0;;
15557686931;;0;0.0;;;0;0.0;;
13699862013;;0;0.0;;;0;0.0;;
13654742219;2014-04-05 21:32:43;43;0.432;;;0;0.0;;
15970959809;2014-04-05 21:30:31;174;1.566;;;0;0.0;report_q0_ret=3;report_q1_ret=3;
15224116795;;0;0.0;;;0;0.0;;
13899112755;;0;0.0;;;0;0.0;;
15827452979;;0;0.0;;;0;0.0;;
13656800941;;0;0.0;;;0;0.0;;



提取后的样子(如有重复的,请过滤一下,谢谢)
13737557313
13929061961
13712285063
13862630530
13958834379
15954174367
13699336282
13656507275
13654742219
15970959809


谢谢大家帮忙!!!!
作者: terse    时间: 2014-4-6 18:32

  1. @echo off
  2. set "pattern="1[0-9]*;*2014-[0-9][0-9]-[0-9][0-9]\^>""
  3. for /f "delims=;" %%i in ('findstr /b %pattern% a.txt') do if not defined %%i echo %%i&set %%i=a
  4. pause
复制代码

作者: mick00034    时间: 2014-4-6 20:11

本帖最后由 mick00034 于 2014-4-6 20:31 编辑

回复 2# terse
,谢谢,解决了
作者: wangxiaodong    时间: 2014-4-6 20:52

  1. set "pattern="1[0-9]*;*2014-[0-9][0-9]-[0-9][0-9]\^>""
复制代码
大哥,能帮小弟解释下吗?2# terse

作者: pcl_test    时间: 2016-8-6 21:24

第三方
  1. gawk -F";" "{if(/^[:spqce:]*[0-9][0-9]*;[0-9]{4}(-[0-9]{2}){2}/){!a[$1]?s=s$1\"\n\":a[$1]++}}END{print s}" "文本.txt">"结果.txt"
复制代码





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