Posté par JJD .
En réponse au message Awk 2.
Évalué à 3.
Plus sérieusement, il existe certainement plusieurs solutions en fonction de ce que tu veux faire et de la façon dont tu le fais.
Donc, comment exécutes-tu ton programme awk actuellement ?
On va supposer que tu tapes "awk -f programme.awk fichier_à_traiter".
Où sont tes fichiers à traiter :
- tous les fichiers d'un répertoire donné ?
- tous les fichiers pouvant correspondre à un masque ? (par exemple *.txt , */t*.csv, ...)
- tu as la liste de ces fichiers dans un fichier ?
Comment veux tu récupérer le résultat :
- un fichier de sortie par fichier en entrée ?
- un unique fichier de sortie ?
Supposons donc que tu veux traiter tous les fichiers *.txt du répertoire courant avec ton programme awk contenu dans le fichier programme.awk et que tu veux un fichier de sortie par fichier d'entrée avec les noms *.out, tu peux faire (sous bash) :
for f in *.txt ; do awk -f programme.awk "$f" >"${f/.txt$/.out}" ; done
En fonction de tes besoins, il te reste à adapter ...
[^] # Re: la réponse est simple
Posté par JJD . En réponse au message Awk 2. Évalué à 3.
Donc, comment exécutes-tu ton programme awk actuellement ?
On va supposer que tu tapes "awk -f programme.awk fichier_à_traiter".
Où sont tes fichiers à traiter :
- tous les fichiers d'un répertoire donné ?
- tous les fichiers pouvant correspondre à un masque ? (par exemple *.txt , */t*.csv, ...)
- tu as la liste de ces fichiers dans un fichier ?
Comment veux tu récupérer le résultat :
- un fichier de sortie par fichier en entrée ?
- un unique fichier de sortie ?
Supposons donc que tu veux traiter tous les fichiers *.txt du répertoire courant avec ton programme awk contenu dans le fichier programme.awk et que tu veux un fichier de sortie par fichier d'entrée avec les noms *.out, tu peux faire (sous bash) :
for f in *.txt ; do awk -f programme.awk "$f" >"${f/.txt$/.out}" ; done
En fonction de tes besoins, il te reste à adapter ...
A+
JJD