Transposition

Résolu
jdlemoine Messages postés 13 Statut Membre -  
jdlemoine Messages postés 13 Statut Membre -
Bonjour,

Je souhaiterais transposer mes données présentes dans un fichier dans une seule colonne comme suit :

toto&tata&titi&tutu titi&tata
toto&tata&titi&tutu titi&tata

toto
tata
titi
tutu titi
tata
toto
tata
titi
tutu titi
tata

Les espaces entre tutu et titi sont voulus.

Merci.

4 réponses

  1. jdlemoine Messages postés 13 Statut Membre
     
    J'utilise la commande suivante :

    echo 'cat name4' | awk 'BEGIN { RS="&" }1' > name5

    Cela fonctionne quand je n'ai que des &

    J'aimerais la faire évoluer de manière à ce que le traitement s'effectue quand j'ai des & ou des #
    0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    $ cat plop 
    toto&tata#titi&tutu titi&tata
    toto#tata&titi&tutu titi&tata

    $ awk 'BEGIN { RS="[]" }1' plop
    toto
    tata
    titi
    tutu titi
    tata
    toto
    tata
    titi
    tutu titi
    tata

    $ sed 's/&\|#/\n/g' plop
    toto
    tata
    titi
    tutu titi
    tata
    toto
    tata
    titi
    tutu titi
    tata

    0
  3. jdlemoine Messages postés 13 Statut Membre
     
    Merci zipe31 mais cela ne fonctionne pas chez moi :

    echo 'cat name' | awk 'BEGIN { RS="[]" }1' > name11
    awk: line 0 (NR=1): Record too long (LIMIT: 19999 bytes)

    -rw-rw---- 1 linus in 34916 Aug 3 12:25 name

    -rw-rw---- 1 linus in 0 Aug 3 20:57 name11

    Avec le fichier plop non plus :

    cat plop
    toto&tata#titi&tutu titi&tata
    toto#tata&titi&tutu titi&tata

    awk 'BEGIN { RS="[]" }1' plop
    toto&tata#titi&tutu titi&tata
    toto#tata&titi&tutu titi&tata

    sed 's/&\|#/\n/g' plop
    toto&tata#titi&tutu titi&tata
    toto#tata&titi&tutu titi&tata
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Quel système d'exploitation ? Unix ? Linux ?
      Quelle version de awk et sed ?
      Quel format pour le fichier d'entrée ? Unix ? Dos ?
      0
    2. jdlemoine Messages postés 13 Statut Membre
       
      SunOS ars103 5.10 Generic_127111-03 sun4v sparc SUNW,Sun-Fire-T200

      file /usr/bin/awk
      /usr/bin/awk: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped

      file /usr/bin/sed
      /usr/bin/sed: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped

      Fichier d'entrée : Unix
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Essaye avec
      nawk
      à la place de awk.
      0
    4. jdlemoine Messages postés 13 Statut Membre
       
      nok :

      nawk 'BEGIN { RS="[&#]" }1' plop
      toto&tata#titi&tutu titi&tata
      toto#tata&titi&tutu titi&tata
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Je ne sais que dire...

      Essaye uniquement avec le "#" pour voir si ça passe...

      nawk 'BEGIN { RS="#" }1' plop 
      0