|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Bonjour,
Comme le sujet le dit, je souhaiterais récupérer les différents paths que me renvoie ma commande find. Je pensais a faire une boucle qui lirait le résultat n de ma requete mais étant vraiment débutant dans ce langage j'avoue que je planche un peu... Awk me permettrait il de faire cela si je le combine a mon find ? Merci pour vos réponses |
|
|
10
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
find a une option -printf, qui doit te permettre d'avancer ... ? montre ce que tu fais, ce que tu obtiens, et le résultat souhaité. |
|
|
01
|
|
|
#3 | ||
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
Find te donne en général un résultat sous la forme :
premier résultatDonc en théorie tu auras un traitement du style : Code :
|
||
|
|
10
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 535 ![]() |
suffit de charger dans la boucle une variable resultat de forme TABLEAU et ainsi chaque ligne est une occurrence du tableau et tu peux ainsi traiter comme tu veux et dans l'ordre que tu veux ....
si tu veux un traitement identique pour tout, mieux vaut faire le traitement directement à chaque itération dans la boucle comme proposé par levi59 si tu veux juste agir sur les fichiers trouvés, alors il vaut mieux utiliser l'option exec de find |
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Merci pour vos réactions !
J'aurais besoin de transformer les fichiers recherchés (.grd) en .tiff. Voila pourquoi il faut que je récupere séparement ces résultats Code :
|
||
|
|
10
|
|
|
#6 |
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
Quels sont tes critères pour déplacer les fichiers?
Tu souhaites déplacer tous les fichiers vers un dossier précis fixé dans le script ou bien choisir manuellement un fichier et ensuite un dossier de destination? |
|
|
10
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Il faut que le fichier ait l'extension ".grd" . Si c'est le cas j’exécute la commande gdal_translate qui me renvoie un fichier ".tiff"
Tout cela doit être automatique, tous les fichiers ".grd" doivent être traités de la même manière |
|
|
00
|
|
|
#8 | ||
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
il y a une erreur là (redirection de la commande find):
Code :
|
||
|
|
10
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Arf... oui une étourderie de ma part... j'ai oublié de l'enlever...
Merci pour ton aide car je débute vraiment en shell :s Pour la destination du .tiff j'ai mis le répertoire mais comment puis je faire pour que son nom soit le meme que celui du .grd, c'est a dire par exemple le fichier : GSM_Current_ATLANTIC_UTM21_201106.grd =» GSM_Current_ATLANTIC_UTM21_201106.tiff Merci beaucoup pour l'aide ! |
|
|
10
|
|
|
#10 | ||
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
Une petite substitution devrais faire l'affaire:
Code :
Code :
mv ${REPLY%.*}.tiff /LeNouveaux/DossierDe/Destination |
||
|
|
10
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Merci !
J'ai juste une petite erreur: ./gdal.sh: LD_LIBRARY_PATH=/usr/sfw/lib:~/jmap/bin: is not an identifier je cherche la solution et je te dis si ça marche |
|
|
10
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Code non-testé :
find . -name GSM*grd -exec sh -c 'gdal_translate -ot Byte -b 1 -b 2 -b 3 "$1" "/chemin/destination/$(basename "$1" .grd).tiff"' _ {} \; |
|
|
20
|
|
|
#13 | |||
|
Membre habitué
![]() Étudiant Inscription : août 2011 Messages : 46 ![]() |
Citation:
Code :
|
|||
|
|
10
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Exacte ça marche, il y avait aussi une autre solution qui était de mettre en début de shell : #!/bin/bash au lieu de #!/bin/sh
Il me reste une erreur et ça devrait etre bon avec le "move" : EDIT: Non c'est bon j'ai juste pas réfléchis... pas mis a la bonne place ! Faut que je me réveille un peu la ^^ (il est que 10h du matin ici) TOUT marche merci infiniment pour votre patiente !!! |
|
|
10
|
|
|
#15 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 535 ![]() |
faut pas bosser avant 16H30 du mat" on vous l'a pas déjà dit !?
|
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 84 ![]() |
Ahahah ! Je vis au Québec donc il est bien 10h30
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com