J'ai 100 scripts différents intitulés run_1.scr ... run_100.scr. Au sein de chaque script que j'ai une ligne qui dit:Incrémenter des copies d'un certain nom de script qui se trouve dans un autre script en utilisant bash
python screening_regression.py
Je voudrais créer un code dans bash (ou de la ligne de commande) qui va changer le nom de screening_regression.py à screening_regression1.py pour run_1.scr et screening_regression2.py pour run_2.scr ... et screening_regression100.py pour run_100.scr. Je ne suis pas sûr s'il y a une commande facile qui me permettra juste de faire la boucle sur tous les fichiers qui sont run_1.scr ... run_100.scr et m'avez aller dans chaque dossier et incrémenter le nom de script de python que chaque manuscrit est appel. Des idées?
jusqu'à présent je ne dispose que d'un morceau de code qui passe en boucle sur les fichiers mais je ne suis pas sûr de savoir comment entrer dans chaque fichier et changer le nom du script python dans la façon dont je l'ai décrit:
#!/bin/bash
#for filename in /Data/run_*.scr; do
#go into file and change screening_regression.py to screening_regression1.py
#for the first file and then screening_regression2.py for second file etc.
#done
#num=1
for f in /home/mitche34/WIND_MOS/sub/run_screening_*.scr; do
#sed -i -e 's/(python screening_regression_1yr.py)/(python screening_regression_1yr$num.py)/g' "$f"
perl -i -lpe '($n)=$ARGV=~/\d+/g if $.==1\s/(python screening_regression_1yr)(.py)/$1$n$2/' "$f"
#num=num+1
done
Qu'avez-vous fait jusqu'à maintenant? – 123
Je n'ai pas beaucoup mais j'ai édité dessus avec ce que j'ai. – HM14
C'est vraiment une mauvaise façon de le faire. Mieux vaut avoir un fichier qui ne contient que la variable potentiellement changeante, modifier uniquement ce fichier et demander à l'autre script de le lire. De cette façon, vous gardez vos scripts (écrits manuellement, ne changeant jamais) et vos fichiers de données (potentiellement mis à jour) séparés. –