créer un site


impossible d'écrire dans des fichiers passés en paramètres

Poster un nouveau sujet sur awk   Répondre au sujet à awk:impossible d'écrire dans des fichiers passés en paramètres    Accueil Forum -> awk
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
neverfail
frontpage mioche
frontpage mioche
Messageimpossible d'écrire dans des fichiers passés en paramètres , Posté le: 11-09-2006 9:25

Bonjour à tous,

j'ai un soucis avec awk.
J'ai écris un programme que je lance en passant 4 fichier en paramètre sur la ligne de commande, et dans mon programme, je n'arrive pas à écrire dans ces fichiers des données que je récupère ds le 1er fichier en paramètre.

Voici un bout de mon code


cat $1 | awk 'BEGIN { FS = ";" ; Nb_lignes = 0 ; }

{ Nb_lignes++; flag_true = -1; flag_bad = 0
if(int($1)!=$1)
{flag_bad = 1; flag_true = 0; print "Erreur IDOPER : Ligne " Nb_lignes > "$fichier_log"}
else { if (flag_true != 0) {flag_true = 1}}


if (flag_bad == 1) {print $0 > "$fichier_err"}

if (flag_true == 1) {print $0 > "$fichier_sortie"}
}'

fichier_log, fichier_err et fichier sont des fichiers que je mets en paramètre qd je lance mon script: tester.awk fichier_entree fichier_sortie, fichier_log fichier_err.

Merci de me filer un coup de main.
salemioche
salemioche
salemioche
Messageimpossible d'écrire dans des fichiers passés en paramètres , Posté le: 11-09-2006 9:43

par quelle magie $fichier_err devrait contenir le nom du fichier ?
neverfail
frontpage mioche
frontpage mioche
Messageimpossible d'écrire dans des fichiers passés en paramètres , Posté le: 11-09-2006 10:18

Tout en haut de mon prog, je fais :
fichier_sortie=$2
fichier_log=$3
fichier_err=$4
salemioche
salemioche
salemioche
Messageimpossible d'écrire dans des fichiers passés en paramètres , Posté le: 11-09-2006 10:27

il faut faire plutot

export fichier_sortie=$2


et a la place de $fichier_sortie

mettre ENVIRON["fichier_sortie"]
neverfail
frontpage mioche
frontpage mioche
Messageimpossible d'écrire dans des fichiers passés en paramètres , Posté le: 11-09-2006 10:48

J'ai trouvé!!!
En fait tout à la fin, j'ai rajouté $1 $2 $3 $4 et utilisé ARGV:
awk 'BEGIN { FS = ";" ; Nb_lignes = 0 }

{if (FILENAME == ARGV[2]) exit;
Nb_lignes++; flag_true = -1; flag_bad = 0 ;
if(int($1)!=$1)
{flag_bad = 1; flag_true = 0; print "Erreur IDOPER : Ligne " Nb_lignes >> ARGV[3]}
else { if (flag_true != 0) {flag_true = 1}}


if (flag_bad == 1) {print $0 > ARGV[4]}
if (flag_true == 1) {print $0 > ARGV[2]}

}' $1 $2 $3 $4



Merci
Montrer les messages depuis:   
Poster un nouveau sujet sur awk   Répondre au sujet à awk:impossible d'écrire dans des fichiers passés en paramètres    Accueil Forum -> awk Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
S'enregistrerS'enregistrer
ProfilProfil
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés
RechercherRechercher
Liste des MembresMembres
FAQFAQ
ConnexionConnexion 


© Mentions Légales