Probleme avec la commande awk en bash

Utilisateur anonyme -  
 Utilisateur anonyme -
bonjour!
j'ai ecrit un script sous linux qui ramene un fichier nomFichier.txt depuis une station unix et qui lui fait subir quelques (mauvais) traitements ^_^.

voila :
awk ' { FS="|" } { print $1 }' nomFichier.txt > newFichier.txt

cela me permet de mettre uniquement la(les) colonnes que je veux dans un nouveau fichier pour exploiter cette colonne.

Voici mon pb : en fait, une fois que le script est lance tout se deroule normalement sauf que, a chaque fois, la premiere ligne du fichier (qui possede elle aussi plusieurs colonnes separees par un | ) reste entiere (c comme s'il n'y avait pas de separateur).

quelqu'un a une idee de ce qui cause ce pb ?

Merci d'avance.

Bahan,
"Et vive les ours de mer!"
A voir également:

3 réponses

jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Hello,
Exact, j'ai bien le comportement que tu décris.

En attendant tu peux essayer
awk -F "|" '{ print $1}' < f1.txt > f2.txt

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Hello,
Essaye ceci:
$awk 'BEGIN{ FS="|"}{ print $1}' < f1.txt > f2.txt

En fait ton FS n'est pas encore redéfini lors du parsing
de la première ligne. En le mettant dans BEGIN,
tu le définis AVANT le parcours des lignes de ton fichier,
et ça marche comme il le faut.

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0
Utilisateur anonyme
 
ok merci les gars
je vais voir si ca marche $^_^$
0