Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Eclatement d'un Fichier en Awk
Envoyé par: morey

Bonjour,


je souhaiterais savoir si mon traitement pouvait se faire en awk...


le script doit balayer séquentiellement un fichier et, s'il rencontre un certain critère, générer un fichier
(le nom du fichier doit comporter un chrono incrémenté de 1).

j'ai déjà développé des scripts avec un nombre connu de fichiers en sortie mais est ce que awk peut générer
des fichiers sans en connaître le nombre maxi ?


Merci d'avance pour toutes vos réponses,

Poste le Thursday 13 December 2007 11:01:10
Répondre     Citer    
Re: Eclatement d'un Fichier en Awk
Envoyé par: oudoubah

Oui.

Mais le plus simple serait de donner un exemple des fichiers d'entrée et de la sortie que awk doit produire.

Un petit exemple pour le fun :
#!/usr/bin/awk -f

BEGIN {cpt=1
        ficname="/tmp/toto/fic" cpt
        }

/dev/ {print $0 > ficname
        cpt=cpt+1
        ficname="/tmp/toto/fic" cpt
}

et tu testes avec ./test.awk < /etc/fstab

C'est à améliorer pour produire un fichier de la forme fic01 et non fic1 (afin de les avoir dans l'ordre avec un ls).

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 13 December 2007 12:57:32
Répondre     Citer    
Re: Eclatement d'un Fichier en Awk
Envoyé par: morey

C'est aussi simple que ca :-)

d'habitude je paramétrais le(s) fichier(s) en sortie avec :
awk -v ficsortie1=/tmp/arf1 -v ficsortie2=/tmp/arf2

je n'avais jamais utilisé cette facon de coder :
ficname="/tmp/arf" cpt
print $0 > ficname


Merci beaucoup !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

on en apprend tout les jours :-)

Poste le Thursday 13 December 2007 14:29:59
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Eclatement d'un Fichier en Awk
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons