Utiliser une commande awk dans awk
Résolu
th.deudon
Messages postés
449
Statut
Membre
-
th.deudon Messages postés 449 Statut Membre -
th.deudon Messages postés 449 Statut Membre -
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 :
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 :
puis de faire :
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
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
2 réponses
Résumé de la discussion
Le problème porte sur un fichier référençant des liens vers d'autres fichiers et sur la récupération des données présentes dans chacun via une fonction awk.
Plusieurs réponses proposent de lire les liens depuis fichier1 et d'exécuter sur chaque fichier référencé une commande awk, le code étant stocké dans une variable et appelé comme action.
Des pistes techniques évoquées incluent getline dans BEGIN pour boucler sur fichier1, l'extraction de NF-1 pour le chemin, et la gestion appropriée des variables et des résultats.
En pratique, des alternatives comme un fichier trajectoire de liens ou une boucle for pour traiter les fichiers un par un sont évoquées, sans trancher sur une solution unique.
-
awk 'BEGIN{while(getline<"fichier1" >0)ARGV[++n]=$0; ARGC+=n}{print "traitement du fichier : "FILENAME", ligne "FNR" : "$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.-
-
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?
-