Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

awk et sed

2 réponses
Avatar
Christian Théroux
Bonjour
je désire connaître une commande qui me permettera de récupérer
une ligne dans un fichier et l'envoyer dans un autre.

Dans mon premier fichier, les informations sont inscrites ligne par ligne ,
par exemple

dominique.dagenais
christian.belzil
alain.theroux
.....
.....

et je veux par exemple récupérer le troisième nom ....

merci à ceux et celles qui vont prendre la peine de me répondre

Chris

2 réponses

Avatar
Daniel
Christian Théroux a écrit :
Bonjour
je désire connaître une commande qui me permettera de récupérer
une ligne dans un fichier et l'envoyer dans un autre.

Dans mon premier fichier, les informations sont inscrites ligne par ligne ,
par exemple

dominique.dagenais
christian.belzil
alain.theroux
.....
.....

et je veux par exemple récupérer le troisième nom ....




awk 'NR == 3' nom_du_fichier >> nouveau_fichier

- l'argument 'NR == 3' commande à awk de sélectionner la troisième ligne
(NR est une variable awk contenant le nombre d'enregistrements vus
depuis le début de lecture du fichier, donc la condition NR == 3 est
vraie pour la troisième ligne)

- sans commande supplémentaire, awk imprime par défaut la ligne
sélectionnée sur sa sortie standard

- on redirige cette sortie standard sur nouveau_fichier



Il y a pas mal d'autres solutions pour récupérer la troisième ligne d'un
fichier, par exemple :

head -3 nom_du_fichier | tail -1 >> nouveau_fichier

- la commande 'head -3' renvoie sur la sortie standard les 3 première
lignes de nom_du_fichier,

- on renvoie le résultat sur la commande 'tail -1' qui renvoie la
dernière ligne du flux qui lui a été envoyé sur l'entrée standard (il
reste donc la troisième ligne du fichier d'origine)


On doit aussi pouvoir jouer avec sed ou ex.

etc.
Avatar
Joël Chappel
"Christian Théroux" a écrit dans le message de
news: %Ivye.3892$
Bonjour
je désire connaître une commande qui me permettera de récupérer
une ligne dans un fichier et l'envoyer dans un autre.

Dans mon premier fichier, les informations sont inscrites ligne par ligne
, par exemple

dominique.dagenais
christian.belzil
alain.theroux
.....
.....

et je veux par exemple récupérer le troisième nom ....




Facile : head -3 inputfile|tail -1 > outputfile

"head -3 inputfile" affiche les 3 premières lignes du fichier "inputfile"
"tail -1" affiche la dernière ligne (donc ici la troisième)