Assuming that any 2-digit year between 70 and 99 occurs last century:

sed 's/[7-9][0-9];$/19&amp;/; s/[0-6][0-9];$/20&amp;/' file


Or, let someone else decide:

perl -MTime::Piece -F';' -ane '
    $F[-2] = Time::Piece-&gt;strptime($F[-2], "%d.%m.%y")-&gt;strftime("%d.%m.%Y");
    print join(";", @F)
' file


Options


-MTime::Piece imports the standard Perl Time::Piece module
-F';' -a options split each line by semicolons and stores the result in the @F array
-n loops over the lines in the input data (stdin or files) without automatically printing each line.


Code


$F[-2] is the 2nd last field (which is where the date was in your original question). 
I use the strptime and strftime methods to parse and format the date.


So, if you have dates that should be changes in columns 12 through 15, use

perl -MTime::Piece -F';' -ane '
    sub reformat {
        return Time::Piece-&gt;strptime(shift, "%d.%m.%y")-&gt;strftime("%d.%m.%Y");
    }
    for my $i (11..14) {
        $F[$i] = reformat $F[$i];
    }
    print join(";", @F)
' file


convert text file column field with data dd.mm.yy to dd.mm.YYYY
I already know that I need to tune /etc/sudoers file but I would like to see full information and also a solution that would not require me to use vi editor.

Update: never, ever try to edit the file with something else than visudo.
