Probleme avec la commande awk en bash

Bahan -  
 Bahan -
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

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
  3. Bahan
     
    ok merci les gars
    je vais voir si ca marche $^_^$
    0