CommentCaMarche
Recherche
Posez votre question Signaler

Lire un ficher de donnees avec awk

hatunat - Dernière réponse le 28 juin 2006 à 20:02
bonjour,
je voudrais lire un fichier texte avec des donnees en 2 colonnes et diriger la sortie vers un autre fichier en inversant l'ordre des colonnes avec un script shell et/ou awk.
exp
fic1
NOM PRENOM

puis resultat fic2
PRENOM NOM

merci de votre aide
Lire la suite 
Réponse
+0
moins plus
Salut,

voilà en ligne de commande avec perl

J'ai pris comme séparateur l'espace (un espace pour être exact). Donc q'il y a 2 prénoms sans espace ça ne marche pas.
lami20j@debian:~$ cat ccm_nom_prenom
Nom Prenom
AAA Bbb
BBB Ccc
lami20j@debian:~$ cat ccm_nom_prenom | perl -ne 'print join (" ",reverse split " ",$_), "\n"' > ccm_prenom_nom
lami20j@debian:~$ cat ccm_prenom_nom
Prenom Nom
Bbb AAA
Ccc BBB
lami20j@debian:~$
ou
lami20j@debian:~$ cat ccm_nom_prenom
Nom Prenom
AAA Bbb
BBB Ccc
lami20j@debian:~$ cat ccm_nom_prenom | perl -ne 's/(\w+)\s(\w+)/$2 $1/ and print' > ccm_prenom_nom
lami20j@debian:~$ cat ccm_prenom_nom
Prenom Nom
Bbb AAA
Ccc BBB
lami20j@debian:~$
lami20j
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Avec "awk" ça donne ça :
[jp@MDK tmpfs]$ cat fich.txt
Dupont Jean
Dupuit Albert
Dubois Isabelle

[jp@MDK tmpfs]$ while read i; do echo $i | awk '{ print $2,$1 }' >> fich2.txt; done <fich.txt

[jp@MDK tmpfs]$ cat fich2.txt
Jean Dupont
Albert Dupuit
Isabelle Dubois

[jp@MDK tmpfs]$
;-))
Ajouter un commentaire
Ce document intitulé «  lire un ficher de donnees avec awk  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.