Probleme avec la commande awk en bash

Fermé
Utilisateur anonyme - 5 mai 2003 à 11:02
 Utilisateur anonyme - 6 mai 2003 à 16:21
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!"

3 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
6 mai 2003 à 12:18
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
6 mai 2003 à 12:28
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
6 mai 2003 à 16:21
ok merci les gars
je vais voir si ca marche $^_^$
0