Récupérer le dernier "bloc" de chaque ligne d'un fichier

Récupérer le dernier "bloc" de chaque ligne d'un fichier - Shell/Batch - Programmation

Marsh Posté le 21-07-2016 à 13:49:58    

Bonjour,
 
Voici mon problème, j'ai un fichier .csv du type:
 
*********
Nom;Prénom;age
Jeanne;blabla;45
Isabelle;blabla;13
Paul;blabla;8
ligne vide
*********
 
Je souhaite récupérer sous forme de variable les derniers blocs concaténés. Dans notre cas nous aurions la variable concat = 45 13 8
En gros je veux récupérer les derniers blocs de chaque ligne, et les assembler en mettant un espace entre chaque caractère.
 
N'ayant jamais programmer en shell je suis un peu bloqué avec la commande awk.
Par exemple awk 'BEGIN {FS = ";"} ; END { print $NF }' fichier.csv ne me retourne que le dernier bloc du fichier (ligne vide ou 8 si je la supprime).
Par contre la commande awk '{ print $NF }' fichier.csv me récupere bien l'ensemble des lignes, mais sans prendre en compte le séparateur de champs ';' :(
 
Merci d'avance  :jap:

Reply

Marsh Posté le 21-07-2016 à 13:49:58   

Reply

Marsh Posté le 21-07-2016 à 14:19:45    

Bonjour !
 
Vous pouvez, soit préciser le séparateur dans le bloc BEGIN, comme c'était fait auparavant, soit le préciser dans la ligne de commande avec l'option -F\;, les deux reviennent au même
 
Bonne continuation !


Message édité par Farian le 21-07-2016 à 14:20:05

---------------
On n'est jamais très fort pour ce calcul !
Reply

Marsh Posté le 21-07-2016 à 14:57:38    

Merci pour ton aide
 
La commande awk 'BEGIN { FS=";"; ORS=" "}{if (NR!=1) {print $NF}}' fichier.csv me donne le résultat souhaité ! :)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed