#1 Le 13/10/2012, à 01:43
- Salim86
utiliser un grand nombre de fichier dans une boucle.
Bonjour,
Il s'agit de mon premier post sur le forum. J'ai vraiment utilisé la fonction rechercher pour répondre à ma question : sans succès. Je n'arrive pas à décrire ce que je veux faire.
Ma question peut sembler triviale mais je ne trouve pas de solution pour l'instant. C'est très simple.
Je pars d'un script que j'ai fait et qui fonctionne.
for filename in fichier1 fichier2 fichier 3; do first_flirt $filename ${filename}_to_std_sub -cort
(pour trois fichiers je demande d'exécuter une commende).
Maintenant j'ai 100 fichiers au lieu de 3.
Donc j'aimerai créer un fichier texte avec le nom de mes 100 fichiers et reprendre mon code.
Je n'arrive à faire en sorte que l'ordinateur exécute la commande pour mes 100 fichiers (pour faire le renvoi vers un fichier texte).
Je sais que c'est possible et il me semblait qu'il fallait utiliser "cat" mais je ne suis pas sur.
Merci beaucoup d'avance.
Salim.
Hors ligne
#2 Le 13/10/2012, à 01:50
- sputnick
Re : utiliser un grand nombre de fichier dans une boucle.
for i in fichier*; do
echo "$i" >> new_file
done
Dernière modification par sputnick (Le 13/10/2012, à 01:51)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#3 Le 13/10/2012, à 11:38
- Salim86
Re : utiliser un grand nombre de fichier dans une boucle.
merci beaucoup pour la rapidité de la réponse !
ça répond exactement à la première partie de ma question.
effectivement ce script me permet de mettre dans un fichier new_file tout les fichiers que je veux analyser avec ma commande.
donc la deuxième question est : comment dois-je faire pour appeller cette liste de fichier quand je veux exécuter cette commande.
un truc dans le style de
for filename in new_file ; do first_flirt $filename ${filename}_to_std_sub -cort
Merci beaucoup,
ça fait une semaine que je cherche la réponse à cette question.
Hors ligne
#4 Le 13/10/2012, à 11:45
- pingouinux
Re : utiliser un grand nombre de fichier dans une boucle.
Bonjour,
while read filename; do first_flirt "$filename" "${filename}"_to_std_sub -cort; done <new_file
Ajouté :
Ou en cumulant les 2 commandes :
for filename in fichier*; do first_flirt "$filename" "${filename}"_to_std_sub -cort; done
Dernière modification par pingouinux (Le 13/10/2012, à 11:48)
Hors ligne
#5 Le 13/10/2012, à 12:15
- Salim86
Re : utiliser un grand nombre de fichier dans une boucle.
Merci beaucoup,
Je ne comprends pas comment j'ai pu ne pas penser à utiliser un wildmask dans mon script. lorsque je le faisais dans le terminal ça ne marchait pas, mais dans le script ça marche.
En tout cas tu m'as beaucoup aidé, merci beaucoup.
Si tu es à paris, je te paye un bière aujourd'hui !
Hors ligne
#6 Le 14/10/2012, à 00:38
- sputnick
Re : utiliser un grand nombre de fichier dans une boucle.
wildmask ? Tu veut dire plutôt wildcard je pense.
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#7 Le 14/10/2012, à 02:08
- Salim86
Re : utiliser un grand nombre de fichier dans une boucle.
effectivement.
par contre j'ai eu un autre ennui.
je ne sais pas ce qui m'a pris mais j'ai voulu essayer de passer en mode root (pour modifier le bashrc). j'ai fait sudo su et ensuite j'ai ouvert le bashrc.
ensuite j'ai paniqué, je me suis dit que ça me dépassait j'ai fermé le terminal à la hussarde (la croix en haut à droite).
maintenant quand j'essaye de faire marcher une commande de mon logiciel qui a toujours fonctionné je me prends un "permission denied"
est-ce possible que ma manipulation hasardeuse puisse avoir cette conséquence ?
existe-t-il un moyen d'annuler toutes les modifications que j'ai pu faire dans bashrc (j'en avais déjà faites avant mais ça n'avait pas posé de pb) sans réinstaller tout ubuntu (j'ai eu bcp de mal à installer le logiciel dont je me sers).
je dois avoir l'air un peu ridicule, mais je suis vraiment très ennuyé de ce "permission denied" qui m'empêche de finir mon travail.
Merci d'avance,
salim
Hors ligne