Je travaille sur de grandes quantités de données et j'ai un protocole impliquant plusieurs scripts. Je le lance séparément pour chaque fichier d'entrée, en intervertissant simplement filename
dans le fichier texte contenant la commande. J'aimerais savoir s'il est possible de l'automatiser pour tous les fichiers ayant certaines extensions, lorsque for x in ...
est utilisé dans la commande.
Exemple de ce que j'ai maintenant
mkdir filename.file && for f in *.different_file; do [[ -n $(awk 'NF{i++} END {if (i<14) print FILENAME}' "$f") ]] && rm "$f" ;done
et les fonctionnalités que j'aimerais avoir :
for x in location/*.file do; mkdir $x && for f in *.different_file; do [[ -n $(awk 'NF{i++} END {if (i<14) print FILENAME}' "$f") ]] && rm "$f" ;done ;done
il y aurait plus de boucles à l'intérieur de la boucle principale, mais il n'y aurait plus d'empilement.
Comment puis-je réaliser une telle chose ?
EDIT : Quelques informations supplémentaires sur ce que je veux, pardonnez mon langage non professionnel :
J'aimerais que deux variables fonctionnent à l'intérieur de deux boucles, l'une à l'intérieur de l'autre. Je pense que l'utilisation de boucles imbriquées comme suggéré par @Lety pourrait être la meilleure solution bien que cela prenne un certain temps pour la tester.
Quelques commandes supplémentaires que j'utilise pour visualiser le problème :
mkdir filename.file && for i in *.file2; do program /filename.file/filename.file $i> $i.filename.file.out ; done && for f in *.file.out; do [[ -n $(awk 'NF{i++} END {if (i<14) print FILENAME}' "$f") ]] && rm "$f" ;done && for i in *.file.out; do grep -v '^#' $i >> $i.trim; done
J'aimerais que filename.file soit une variable identique pour toutes les boucles :
for x in *.file do; mkdir $x && for i in *.file2; do program /$x/$x $i> $i.$x.out ; done && for f in *.file.out; do [[ -n $(awk 'NF{i++} END {if (i<14) print FILENAME}' "$f") ]] && rm "$f" ;done && for i in *.file.out; do grep -v '^#' $i >> $i.trim; done; done
J'espère que cela clarifie un peu les choses. Je vais étudier les boucles imbriquées dans bash script, une autre difficulté est que cela doit fonctionner pour cygwin également, mais je suppose que cela ne devrait pas avoir d'importance tant que les commandes sont correctes.