所有日期我有以下文件:查找和替换文件
20120127.221500.std|MT:63|ST:1.|ON:ABT.N|DRT:U|SEQ:862461707
80 Bezahlt : 55.04
81 Bezahlt_Umsatz : 200
281 Bezahlt_Zeit : 22:00:02
752 Quelle : CTS OTC
83 Umsatz_gesamt : 5639295
621 VWAP : 54.984104
26 Zeit : 22:00:05
20120127.232408.std|MT:63|ST:1.|ON:ABT.N|DRT:U|SEQ:862507497
41 Schluss : 55.02
120 Schluss_Datum : 27.01.2012
20120128.011558.std|MT:63|ST:1.|ON:ABT.N|DRT:U|SEQ:862559511
25 Datum : 28.01.2012
26 Zeit : 01:01:30
我希望能够找到的所有日期(即27.01.2012,28.01.2012)并更换最新的一个(即28.01.2012)与今天的日期。我希望用较旧的日期替换所有较旧的日期。我向你展示一个例子,因为我认为你最好能理解我。假设今天是21.11.2012。我希望2012年1月21日2012年11月21日,2012年1月27日以及20.11.2012取代2012年1月28日。如果有26.01.2012我想用19.11.2012替换它。
任何人都可以给我线索我该怎么办?
也许一些提示算法看起来应该如何?我很乐意在Perl中做到这一点。
我的问题是如何确定最早的日期。我已经开始了类似的东西:
open F ,"<$file";
my $content = do{local $/;<F> };
if ($content =~ /BOERSEN : [N|Q]/)
{
$content =~ /(\d\d\.\d\d\.\d\d\d\d)/;
my $d = $1;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year+= 1900;
$mon +=1;
$mon = sprintf("%02d", $mon);
$content =~ s/(\d\d)\.\d\d\.\d\d\d\d/$1\.$mon\.$year/msgi;
my @d = split (/\./, $d);
$d = $d[2].$d[1];
$content =~ s/$d(\d\d)/$year$mon$1/msgi;
}
但它不是真的是我想要的。
是他们都在同DD.MM.YYYY格式? – amphibient
不是真的。但我设法识别格式。我需要的是弄清楚如何以我描述的方式替换日期。我的问题是,有更多的日期。 – MaMu
你尝试过什么吗?你举了一个例子很好,但如果你向我们展示了你的奋斗目标,那将会更好。 – simbabque