Commande Lunix

ayda -  
 ayda -
Bonjour,
j'ai un fichier texte de 5 colonnes :
82 1 1 10 20
83 1 14 2 15
84 1 15 13 17
....
..
je veux que la deuxième colonne soit la dernière , la troisième colonne prend la place de la deuxième ...

Merci

3 réponses

  1. UnGars
     
    Salut,

    Regarde du côté de awk.
    0
    1. ayda
       
      oui j' ai essayé avec la commande awk mais j'arrive pas à le faire .

      Merci
      0
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    Inspire-toi de ceci, non.
    johand@bata:~/src/CCM/AWK$ cat data.txt 
    82 1 1 10 20
    83 1 14 2 15
    84 1 15 13 17
    johand@bata:~/src/CCM/AWK$ awk -- 'BEGIN{IFS=" "}{printf( "%s  %s %s\n", $1, $3, $2) ;} ' data.txt 
    82  1 1
    83  14 1
    84  15 1


    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    avec ou sans les colonnes 4 et 5 ?
    $ awk '{print $1, $3, $4, $5, $2}' fichier
    82 1 10 20 1
    83 14 2 15 1
    84 15 13 17 1
    $ awk '{print $1, $3, $2}' fichier
    82 1 1
    83 14 1
    84 15 1
    0
    1. ayda
       
      Bonjour
      j'ai essayé avec la première commande ( ce que je veux moi) mais çà marche pas, il affiche seulement la première colonne.

      Merci
      0
    2. UnGars > ayda
       
      Salut,

      Alors c'est que ton fichier n'est pas formaté comme tu le dis ;-(

      Peux-tu afficher un bout de ton fichier avec cette commande :
      cat -A ton_fichier
      ?
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      les colonnes sont séparées par un espace ?
      c'est un fichier Windows, lignes terminées par des ^M ? voir avec
       cat -A fichier
      0
    4. ayda > UnGars
       
      Ci joint un fichier texte avec 5 colonnes
      82 1 1 10 20
      83 1 14 2 15
      84 1 15 13 14
      .....
      ....
      Ce que je veux c'est que la 2 ème colonne soit la dernière
      c-à-dire

      82 1 10 20 1
      83 14 2 15 1
      84 15 13 14 1
      .........
      0
    5. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > ayda
       
      $ cat fichier
      82 1 1 10 20
      83 1 14 2 15
      84 1 15 13 14
      $ awk '{print $1, $3, $4, $5, $2}' fichier
      82 1 10 20 1
      83 14 2 15 1
      84 15 13 14 1
      0