Utiliser une commande awk dans awk

Résolu/Fermé
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 - Modifié par th.deudon le 8/07/2013 à 10:28
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 - 12 juil. 2013 à 10:22
Bonjour à tous,

J'ai un fichier ( fichier1 ) qui pour chaque ligne, a un lien vers un fichier ( exemple : .//abcd/efg/helico.xml ) , le nombre de ligne est aléatoire et le lien l'est aussi.
(représentation de fichier1 :
.//abcd/efg/helico.xml
.//abcd/efg/avion.xml
.//abcd/efg/voiture.xml
.//abcd/efg/train.xml)

Mon but : récupérer des données de chaque fichier dont les liens sont présents.
Je sais récuperer ces données avec une fonction awk :
awk ' { fonction } ' fichier.xml 

Cette fonction me donne les données voulues pour le fichier.xml, mais je les veux toutes, du coup j'ai eu l'idée de faire une variable qui aurait une action :
action=$ (awk ' { fonction } ' ... )

puis de faire :
awk ' {action($0) } ' fichier1 > fichier2


Problème :
je ne sais pas quoi mettre a la place de ... , j'ai essayé PARAM_VAR , mais je reçois "cannot open PARAM_VAR (No such file or directory)"
sinon, est ce la bonne écriture pour utiliser cette action?

Merci
A voir également:

2 réponses

Utilisateur anonyme
8 juil. 2013 à 11:57
awk 'BEGIN{while(getline<"fichier1" >0)ARGV[++n]=$0; ARGC+=n}{print "traitement du fichier : "FILENAME", ligne "FNR" : "$0}'
1
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 15
Modifié par th.deudon le 8/07/2013 à 12:13
Alors merci, mais je n'ai pas compris ce que tu as fait, et je ne vois pas ou la fonction pour récupérer mes données agit... je test ca de suite

EDIT : alors deja il aime pas le fait qu'on lui dise pas quoi on traite ( apres le dernier ' )
et du coup j'ai rien en sortie
0
il aime pas le fait qu'on lui dise pas quoi on traite
en fait, on le lui dit; c'est à ça que sert ARGV.

comment est généré le fichier1 ?
les fichiers qui y sont listés existent-ils ?
0
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 15
8 juil. 2013 à 13:23
oui, quand je fais un programme awk avec un des fichier listé, j'ai ce que je veux
0
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 15
8 juil. 2013 à 13:28
ok, j'avais mal vu un (), je les avais mis en {}

alors ok, j'ai l'impression que ca me lit tout, mais comment je fais l'action voulue ( récupérer les données ) , car la j'ai 10000000000 de données pour 3 intéressantes ;)
0
Utilisateur anonyme
8 juil. 2013 à 13:31
tu remplaces le print par le traitement souhaité !
0
salut,

un mot = une notion

un fichier, c'est un fichier.
un répertoire, c'est un répertoire.
un lien, c'est un lien vers un fichier.

sois plus rigoureux dans ton exposé, stp.
0
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 15
8 juil. 2013 à 10:27
je pense que c'est bon, je confonds souvent fichier et dossier, désolé
0
th.deudon Messages postés 399 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 30 juillet 2015 15
Modifié par th.deudon le 8/07/2013 à 11:42
J'ai un fichier ( fichier1 ) qui pour chaque ligne, a un lien vers un fichier ( exemple : .//abcd/efg/helico.xml ) , le nombre de ligne est aléatoire et le lien l'est aussi.
(représentation de fichier1 :
.//abcd/efg/helico.xml
.//abcd/efg/avion.xml
.//abcd/efg/voiture.xml
.//abcd/efg/train.xml)

Mon but : récupérer des données de chaque fichier dont les liens sont présents.
Je sais récuperer ces données avec une fonction awk :

awk ' { fonction } ' fichier.xml


Cette fonction me donne les données voulues pour le fichier.xml, mais je les veux toutes, du coup j'ai eu l'idée de faire une variable/fonction qui aurait une action :

action=$ (awk ' { fonction } ' ... )


puis de faire :

awk ' {action($0) } ' fichier1 > fichier2



Problème :
je ne sais pas quoi mettre a la place de ... , j'ai essayé PARAM_VAR , mais je reçois "cannot open PARAM_VAR (No such file or directory)"
sinon, est ce la bonne écriture pour utiliser cette action?
0