Probleme avec la commande awk en bash

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. Modérateur
    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
    1. Modérateur
      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
      1. ok merci les gars
        je vais voir si ca marche $^_^$
        0