J'ai divisé un grand fichier texte en un certain nombre d'ensembles de plus petits pour les tests de performance que je fais. Il y a un certain nombre de répertoires comme ceci:Bash: comment parcourir la structure du répertoire et exécuter des commandes?
/home/brianly/output-02 (contains 2 files myfile.chunk.00 and myfile.chunk.01)
/home/brianly/output-04 (contains 4 files...)
/home/brianly/output-06 (contains 6 files...)
Il est important de noter qu'il ya un nombre croissant de fichiers dans chaque répertoire. Ce que je dois faire est d'exécuter un exécutable contre chacun des fichiers texte dans les répertoires de sortie. La commande ressemble à ceci contre un seul fichier:
./myexecutable -i /home/brianly/output-02/myfile.chunk.00 -o /home/brianly/output-02/myfile.chunk.00.processed
Ici le paramètre -i est le fichier d'entrée et le paramètre -o est l'emplacement de sortie. En C#, je ferais une boucle sur les répertoires pour obtenir la liste des fichiers dans chaque dossier, puis je ferais une boucle pour exécuter les lignes de commande. Comment puis-je parcourir une structure de répertoire comme celle-ci en utilisant bash, et exécuter la commande avec les paramètres corrects en fonction de l'emplacement et des fichiers dans cet emplacement?
il y a en arrière-tiques trouvent avant et après f – nikudesu
pour x dans $ (find/home/brianonly -type f); do ... done $() est _so_ beaucoup plus lisible que les back-ticks. Mon $ .02. –
Je pense que le vôtre essaierait de traiter les fichiers traités. –