Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/03/2016, à 16:03

Sebastien92

Parsing de fichier

Bonjour,

est ce que quelqu'un peut m'aider svp ?
J'ai un fichier de données au format csv.
Il contient des données sur chacune des ses lignes.
Je souhaite le parser de manière à avoir :
ligne 1 - séparation par tabulation - Ligne 2
ligne 3 - séparation par tabulation - Ligne 4
au final :
ligne impaire - - séparation par tabulation - Ligne paire

Comment le parser en ligne de commande bash ?

Merci beaucoup pour votre aide !

Hors ligne

#2 Le 21/03/2016, à 16:09

MicP

Re : Parsing de fichier

sed '$!N;s/\n/\t/' donnees.csv

ou bien, si tu veux des tirets avant et après le caractère de tabulation :

sed '$!N;s/\n/ -\t- /' donnees.csv

Dernière modification par MicP (Le 22/03/2016, à 10:44)

Hors ligne

#3 Le 21/03/2016, à 19:53

Arioch91

Re : Parsing de fichier

Je sais que c'est pas demandé mais c'est plus fort que moi : voici une version Perl

#!/usr/bin/perl
$fichier = "fichier.csv";
$new_fichier = $fichier;
$new_fichier =~ s/\./NEW\./;

open(CSV, $fichier) or die("err lecture $fichier : $!\n");
open(NEW, ">$new_fichier") or die("err ecriture $new_fichier : $!\n");
@_ = <CSV>;
chomp(@_);
for($i = 0; $i < scalar(@_); $i+=2) {
    print NEW "$_[$i]\t$_[$i+1]\n";
}

tongue


8 Go RAM - SSD 120 Go + SATA 1 To - Ubuntu 14.04 LTS

Hors ligne