[commande AWK] problème de traitement
Résolu/Fermé
menosgrande
-
9 nov. 2005 à 14:33
asevere Messages postés 13087 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 - 9 nov. 2005 à 19:11
asevere Messages postés 13087 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 - 9 nov. 2005 à 19:11
A voir également:
- [commande AWK] problème de traitement
- Invite de commande - Guide
- Commande terminal mac - Guide
- Traitement de texte gratuit - Guide
- Commande dism - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
3 réponses
Phiphi57
Messages postés
789
Date d'inscription
samedi 26 février 2005
Statut
Contributeur
Dernière intervention
19 juillet 2009
295
9 nov. 2005 à 14:56
9 nov. 2005 à 14:56
Salut!
bon, alors, au cas où, je te propose deux petites solutions pas tres propre, j'imagine que tu auras beaucoup plus élégant...
1/ tu places tes résultats dans un fichier temporaire (>fich_temp ou >>fich_temp selon ce que tu préferes), puis tu rééxecute awk , avec la virgule "," comme séparateur, et un print $1 .
2/ for i in */*.jpr ??
voire meme :
for i in * */* */*/* */*/*/* */*/*/*/*
do
laManipAFaire
done
mais le plus propre reste peut etre :
for i in `find . -name "*.jpr"`
do
echo $i
ManipSur$i
done
ca devrait te donner tous les fichiers .jpr dans l'arborescence
Phiphi
bon, alors, au cas où, je te propose deux petites solutions pas tres propre, j'imagine que tu auras beaucoup plus élégant...
1/ tu places tes résultats dans un fichier temporaire (>fich_temp ou >>fich_temp selon ce que tu préferes), puis tu rééxecute awk , avec la virgule "," comme séparateur, et un print $1 .
2/ for i in */*.jpr ??
voire meme :
for i in * */* */*/* */*/*/* */*/*/*/*
do
laManipAFaire
done
mais le plus propre reste peut etre :
for i in `find . -name "*.jpr"`
do
echo $i
ManipSur$i
done
ca devrait te donner tous les fichiers .jpr dans l'arborescence
Phiphi
asevere
Messages postés
13087
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
9 nov. 2005 à 18:48
9 nov. 2005 à 18:48
Salut
Rapidement, pour awk, si j'ai bien compris ce que tu veux:
Ta commande plus haut prenait la virgule pour un séparateur, il aurait fallut faire un "{ print $2 $3 $4" etc.
Maintenant, si tu veux pouvoir simplement manipuler ces données (passer de .tab à .tfw ou l'inverse, ou tout autre manip qu'on peut-etre ammener à faire avec un SIG )
Cette commande est interessante:
++
Rapidement, pour awk, si j'ai bien compris ce que tu veux:
awk 'BEGIN{ FS = "= "} /^rp/{print $2}' fileIci, tout ce qui commence par rp on affiche la seconde colonne avec comme séparateur =space.
Ta commande plus haut prenait la virgule pour un séparateur, il aurait fallut faire un "{ print $2 $3 $4" etc.
Maintenant, si tu veux pouvoir simplement manipuler ces données (passer de .tab à .tfw ou l'inverse, ou tout autre manip qu'on peut-etre ammener à faire avec un SIG )
Cette commande est interessante:
awk 'BEGIN{ FS = "= |, "} /^rp/{print "w="$2" x="$3" y="$4" z="$5 }'on ne traite toujours que les lignes commencant par pr mais en utilisant '=space' et ',space' commme séparateur, tu récupères dans 4 variables les valeurs numeriques des 4 composantes de tes coordonnées.
++
asevere
Messages postés
13087
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
9 nov. 2005 à 19:11
9 nov. 2005 à 19:11
Pour le deuxieme point
Il faudrait préciser un peu, mais si tu veux passer la même commande sur tout les fichiers de l'arbo, en reprenant mon dernier awk, on peut trés bien imaginer un:
++
Il faudrait préciser un peu, mais si tu veux passer la même commande sur tout les fichiers de l'arbo, en reprenant mon dernier awk, on peut trés bien imaginer un:
find /ton/repertoire/de/base -name '*.jpr' -exec awk 'BEGIN{ FS = "= |, "} /^rp/{print "w="$2" x="$3" y="$4" z="$5 }' {} \;ça devrait fonctionner, a toi de voir ce que tu souhaite exactement ;)
++