Using back references in SED

Today I have several CSV files, everyone with a header at the first line and a date at the first fields with the format mm/dd/yyyy. It was necessary to change that field into the format yyyy-mm-dd.

Here there is a Perl solution and also a SED one:


use strict;
use warnings;

while (<>) {


        if (/^[^0-9]/) {
                print «$_\n»;

        my @Fields = split /,/, $_, 2;

        my ($Month, $Day, $Year) = split /\//, $Fields[0];

        print «$Year-$Month-$Day, $Fields[1]\n»;



sed -i.bak ‘s/^\([0-9]\+\)\/\([0-9]\+\)\/\([0-9]\+\)/\3-\1-\2/’ *.csv

Deja un comentario

Tu dirección de correo electrónico no será publicada.