[Perl] One-liner pour concaténer deux colonnes d'un CSV

Charles Nepote charles at nepote.org
Lun 12 Fév 15:48:24 CET 2018


Bonjour à tous,

Je cherche à concaténer *proprement* deux colonnes d'un CSV en UTF-8 
avec un code court, lisible et sous la forme d'un one-liner.

Je suis arrivé à ça (qui fonctionne) :
perl -MText::CSV::Encoded -lne 
'$c=Text::CSV::Encoded->new({encoding=>utf8}); 
$c->parse($_);@f=$c->fields();print (@f[0]. at f[1].",". at f[2].",". at f[3])' 
monfichier.csv

Je me demandais si on peut faire plus court tout en restant lisible 
(j'ai un petit niveau en Perl).
J'ai exclu les regexp parce que c'est très (trop) compliqué pour gérer 
les cas où il y a une virgule à l'intérieur d'un champ (qui plus es 
contenant des guillemets échappés) : colonne1,"colonne\"n°\",2",colonne3.

Charles.



Plus d'informations sur la liste de diffusion Perl