#! /usr/bin/env perl # $Id: addfolds.pl 1388 2007-06-06 20:14:16Z jnieuwen $ use strict ; use warnings ; use POSIX qw(strftime); my @lines ; my $category = '' ; my $oldline = '' ; my $cline = '' ; my $datum = strftime ("%Y-%m-%d",localtime()); sub sortfunc() { (split(/:/,$a,3))[0].(split(/:/,$a,3))[2] cmp (split(/:/,$b,3))[0].(split(/:/,$b,3))[2] ; } while (my $line=<>) { $line =~ s/ {{{1//g ; push(@lines,$line) ; } foreach my $line (sort sortfunc @lines) { $cline = $line ; $cline =~ s/ //g ; $cline =~ s/:[^:]+:// ; next if($oldline eq $cline) ; my ($newcat,$datefield, $rest) = split(/[:;]/,$line,3) ; if ($newcat ne $category) { chomp $line ; $line .= " {{{1\n" ; $category = $newcat } $line =~ s/:DATE:/:$datum:/ ; print $line ; $oldline = $cline ; $oldline =~ s/{{{1//g ; }