IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Fusionner toutes les 4 lignes en une seule ligne


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Points : 42
    Points
    42
    Par défaut Fusionner toutes les 4 lignes en une seule ligne
    Bonjour,
    Mon fichier :
    # car toto
    1
    2
    3
    4
    A
    B
    C
    D
    Comment faire avec awk ou sed pour fusionner chaque 4 lignes en une seule.
    1 2 3 4
    A B C D
    C'est un très grand fichier, donc, je ne veux pas utiliser un "while read Line do ...done", car ça prend trop de temps.

    Merci beaucoup d'avance.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    dans mon vrac trucs & astuces j'ai ça pour grouper par 3 lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    asterix(root/root)[PASDEBASE]/tmp>cat > FP 
    oisdfjk 
    ouvbzehf 
    0001 
    odfsfdg 
    odfgisd 
    0001 
    oisdfjk 
    ouvbzehf 
    0001 
    odfsfdg 
    odfgisd 
    0001 
    oisdfjk 
    ouvbzehf 
    0001 
    odfsfdg 
    odfgisd 
    0001 
    asterix(root/root)[PASDEBASE]/tmp>sed -e :a -e '/[a-zA-Z]$/N; s/\n/, /; ta' FP 
    oisdfjk, ouvbzehf, 0001 
    odfsfdg, odfgisd, 0001 
    oisdfjk, ouvbzehf, 0001 
    odfsfdg, odfgisd, 0001 
    oisdfjk, ouvbzehf, 0001 
    odfsfdg, odfgisd, 0001 
    asterix(root/root)[PASDEBASE]/tmp>rm FP
    sous conditions d'avoir bien sur un marqueur qui ne soit pas [a-Z] sur la ligne de séparation.

    sinon en arbitraire tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ cat > /tmp/toto
    a
    b
    c
    d
    aa
    bb
    cc
    dd
    ddd
    eee
    fff
    ggg
    ^D
    $ sed "N;N;N; s/\n//g" /tmp/toto
    abcd
    aabbccdd
    dddeeefffggg
    $

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Points : 358
    Points
    358
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    column   test.txt | column -c 4
    EDIT : J'aime bien le sed ! Il nous faut le benchmark pour les deux solutions !!

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ cat toto
    1
    2
    3
    4
    A
    B
    C
    D
    $ pr -s' ' -aT --columns=4 toto
    1 2 3 4
    A B C D
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/07/2015, 17h55
  2. Tout le contenu est sur une seule ligne
    Par mercure07 dans le forum Qt
    Réponses: 2
    Dernier message: 05/07/2012, 08h59
  3. [CR XI] fusionner les lignes en une seule ligne
    Par SophieTaureau dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 07/06/2012, 06h41
  4. [OLEDB] Tout le code est sur une seule ligne
    Par randriano dans le forum Interfaces de programmation
    Réponses: 16
    Dernier message: 21/08/2008, 14h24
  5. Réponses: 6
    Dernier message: 29/05/2008, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo