[bash] ou [octave] traitement de fichiers

Résolu/Fermé
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 18 janv. 2006 à 15:44
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 19 janv. 2006 à 09:05
Bonjour,
je début en scripts tel que bash.
Voici mon problème, :
J'ai un rpertoire contenant plusieur ".m" et je souhaiterai les éxecuter tous dans octave.
Ma première idée est de faire un fichier ".m" de qui si j'ai f1.m et f2.m dans mon répertoire , contient :
f1
f2

Enfin, ça serait dans l'ideal, si le script donne un fichier comme ça :
A=[
"f1.m"
f2.m"
];
Je reussirai à m'en sortir.
Donc si quelqu'un a une idée, je le remercie de m'aider
A voir également:

2 réponses

[Dal] Messages postés 6193 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 089
18 janv. 2006 à 18:03
Salut,

Pas besoin de maintenir une liste. Tu récupères la liste avec un ls et tu la passes dans une boucle "for" comme celà :

for FichierOctave in $(ls *.m); do octave $FichierOctave ; done

Je n'ai jamais utilisé Octave, s'il y a des options de ligne de commande à mettre, à toi de voir. A exécuter dans le répertoire courant.


Dal
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
19 janv. 2006 à 09:05
Merci Dal, c'est la syntaxe $(ls *.m) dans le for qui me manquai .
Par contre, je suis obliger de passer par un fichier, car sinon octave execute le .m et se clos. Impossible alors d'utilisé ce qu'il a chargé.
solution:
echo A=[>Liste.m
for mFile in $(ls *.m);do echo '"'$mFile '"'>>liste.m;done;
echo '];'>>liste.m
0