Creer plusieurs fichier cfg avec une seule variable qui differe
Bonjour,
J'ai un fichier cfg pour une outil de mon boulot qui vient chercher un fichier précis pour l'utiliser.
Or il se trouve que j'ai besoin de faire ça pour plusieurs fichiers.
Les fichiers se trouve dans un répertoire avec des sous dossiers.
Pour essayer d'être un peu plus clair, voici la tète de mon cfg:
[INPUT]
jexpoint_file = .
solver_mode = 2
solver_single_file = .
solver_multiple_folder = .
solver_multiple_filter = *.op2
jloads_file = .
[OPTIONS]
subcases_list =
nodes_list =
split_subcases = False
subcase_fields = 4369
split_nodes = False
split_range = 5000
fx_extraction = True
fy_extraction = True
fz_extraction = True
mx_extraction = True
my_extraction = True
mz_extraction = True
fx_stiff_extraction = True
my_stiff_extraction = True
fz_web_extraction = True
fy_skin_extraction = True
fz_skin_extraction = True
[OUTPUT]
generate_jgpf_files = False
folder_jgpf_files =
generate_jloads_files = False
folder_jloads_files = .
generate_csv_files = False
folder_csv_files = .
overwrite_files = False
J'ai besoin dans [INPUT] de changer mon lien vers mes jexpoint file. Le reste du fichier config ne changera pas.
J'aimerai donc creer un fichier config par fichier jexpointfile.
Or je ne sais jamais combien j'aurai de jexpoint. Si j'en ai beaucoup ça devient laborieux à la main.
Je voudrais donc automatiser la creation des cfg.
J'avais penser utiliser la commande sed mais ça remplace la ligne input et écrase le fichier. Et encore il faut que je lui donne les jexpoint un par un.
J'ai un fichier cfg pour une outil de mon boulot qui vient chercher un fichier précis pour l'utiliser.
Or il se trouve que j'ai besoin de faire ça pour plusieurs fichiers.
Les fichiers se trouve dans un répertoire avec des sous dossiers.
Pour essayer d'être un peu plus clair, voici la tète de mon cfg:
[INPUT]
jexpoint_file = .
solver_mode = 2
solver_single_file = .
solver_multiple_folder = .
solver_multiple_filter = *.op2
jloads_file = .
[OPTIONS]
subcases_list =
nodes_list =
split_subcases = False
subcase_fields = 4369
split_nodes = False
split_range = 5000
fx_extraction = True
fy_extraction = True
fz_extraction = True
mx_extraction = True
my_extraction = True
mz_extraction = True
fx_stiff_extraction = True
my_stiff_extraction = True
fz_web_extraction = True
fy_skin_extraction = True
fz_skin_extraction = True
[OUTPUT]
generate_jgpf_files = False
folder_jgpf_files =
generate_jloads_files = False
folder_jloads_files = .
generate_csv_files = False
folder_csv_files = .
overwrite_files = False
J'ai besoin dans [INPUT] de changer mon lien vers mes jexpoint file. Le reste du fichier config ne changera pas.
J'aimerai donc creer un fichier config par fichier jexpointfile.
Or je ne sais jamais combien j'aurai de jexpoint. Si j'en ai beaucoup ça devient laborieux à la main.
Je voudrais donc automatiser la creation des cfg.
J'avais penser utiliser la commande sed mais ça remplace la ligne input et écrase le fichier. Et encore il faut que je lui donne les jexpoint un par un.
A voir également:
- Creer plusieurs fichier cfg avec une seule variable qui differe
- Fichier bin - Guide
- Fichier epub - Guide
- Creer un fichier .bat - Guide
- Fichier rar - Guide
- Comment créer un groupe whatsapp - Guide
2 réponses
Bonjour,
Il suffit d'écrire un petit script avec une boucle qui itère sur les différentes valeurs de jexpointfile et qui génère un fichier de configuration pour chaque valeur possible. Si cette liste de valeurs est récupérable au travers d'une commande, alors tu peux automatiser le tout avec un script (par exemple, shell ou dans n'importe quel langage de ton choix).
Supposons que ton fichier de départ s'appelle
Pour le lancer, dans le répertoire qui le contient :
Bonne chance
Il suffit d'écrire un petit script avec une boucle qui itère sur les différentes valeurs de jexpointfile et qui génère un fichier de configuration pour chaque valeur possible. Si cette liste de valeurs est récupérable au travers d'une commande, alors tu peux automatiser le tout avec un script (par exemple, shell ou dans n'importe quel langage de ton choix).
Supposons que ton fichier de départ s'appelle
exemple.txt. Supposons que tu veuilles générér un fichier (
exemple_0.txt,
exemple_1.txt, etc) par nom de fichiers présent dans
/etc/X11(donc le résultat de la commande
ls -1 /etc/X11). Alors un script (appelons le
script.shet plaçons le dans le même répertoire que
exemple.txt) est :
#!/bin/bash i=0 for x in $(ls -1 /etc/X11) do cp exemple.txt exemple_$i.txt sed -i 's/jexpoint_file = .*/jexpoint_file = '$x'/' exemple_$i.txt i=$((i+1)) done exit 0
Pour le lancer, dans le répertoire qui le contient :
chmod a+x script.sh
./script.sh
Bonne chance