Comment écrire un script pour exécuter des files dans plusieurs directorys

Comment écrire un script pour exécuter les files dans plusieurs directorys?

Le problème est le suivant: j'ai plusieurs directorys, et chacun a un file de données à lire et parsingr par un script python (par exemple, a.py ). Je ne veux pas "cd" à chacun des directorys et tapez "a.py". Les sorties sont enregistrées dans chaque directory.

find va travailler la magie pour vous.

 find -name datafile.dat -execdir ~/a.py '{}' \; 

La search effectue une search récursive dans tous les sous-directorys pour les files qui correspondent à un set de règles et effectue une action sur eux.

La règle -name vous permettra de find des files avec un nom qui correspond à ce que vous lui donnez. Vous pouvez utiliser le "globbing", par exemple, "* .dat" findait tous les files .dat.

Si nécessaire, vous pouvez utiliser -regex au lieu de -name pour correspondre à un motif regex au lieu d'un model glob, vous pouvez donc faire ". * \. Dat $" pour tous les files .dat.

Le -execdir exécutera n'importe quelle command que vous lui donnerez à partir du directory du file trouvé, en remplaçant "{}" par le file trouvé.

Vous pouvez probablement utiliser une boucle for :

 for i in first_dir second_dir third_dir; do pushd $i a.py popd done 

Il fonctionnera pushd $i; a.py; popd pushd $i; a.py; popd pushd $i; a.py; popd avec $i mis à first_dir , puis à nouveau avec $i comme second_dir , et finalement $i comme third_dir . pushd passe au directory donné, et popd revient à l'endroit où vous étiez