Accueil > Divers (et d’été) > Informatique > Scripts et outils maison > Modifier le séparateur d’un fichier CSV

Modifier le séparateur d’un fichier CSV

vendredi 22 janvier 2010, par Paul Courbis

#!/bin/sh

cat in.csv | awk '
BEGIN { OLD_FS=","; NEW_FS=";"; FS=OLD_FS; RS="\n"; OFS=""; }
{
       IN="no";
       for(i=1; i<=NF; i++)
       {
          if ( IN == "no" && i > 1 ) printf ("%s", NEW_FS );
          if ( IN == "no" && substr($i, 1, 1) == "\"" ) IN="yes";
          printf( "%s", $i );
          if ( IN == "yes" )
          {
             if( substr($i, length($i), 1)  == "\"" ) IN="no";
             else printf( "%s", OLD_FS );
          }
       }
       printf ( "\n" );
}' > out.csv

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Les spams donneront systématiquement lieu à dépôt de plainte. Les messages comportant trop de fautes d'orthographe seront purement et simplement supprimés.