Script shell pour extraire une un nombre et le doubler
Lte_blizzard
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je débute en programmation shell et je galère pas mal! J'aurais besoin d'un coup de main.
Voilà, dans un dossier, j'ai un certain nombre de fichiers de structures identiques, contenant un nombre qui varie et que je dois multiplier par deux.
En gros voici l'un de ces fichiers:
[DURATION]
InSecond=30
[MODULES]
[...]
Le nombre à droite d'InSecond doit être doublé. Je dois faire ça pour tous les fichiers, sachant que ce nombre peut varier mais il se trouve toujours au même endroit.
Merci de votre aide
Je précise au cas où qu'il s'agit d'un script sh à exécuter sous cygwin...
Je débute en programmation shell et je galère pas mal! J'aurais besoin d'un coup de main.
Voilà, dans un dossier, j'ai un certain nombre de fichiers de structures identiques, contenant un nombre qui varie et que je dois multiplier par deux.
En gros voici l'un de ces fichiers:
[DURATION]
InSecond=30
[MODULES]
[...]
Le nombre à droite d'InSecond doit être doublé. Je dois faire ça pour tous les fichiers, sachant que ce nombre peut varier mais il se trouve toujours au même endroit.
Merci de votre aide
Je précise au cas où qu'il s'agit d'un script sh à exécuter sous cygwin...
A voir également:
- Script shell pour extraire une un nombre et le doubler
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Extraire texte d'une image - Guide
3 réponses
Pas la plus belle des manières mais qui marche en bash et awk:
for file in ./*;do awk -F'=' '{if($1 == "InSecond"){print "InSecond="$2*2}else{print $0}}' $file > $file;done
Attention les nouveau fichiers écrasent les anciens
for file in ./*;do awk -F'=' '{if($1 == "InSecond"){print "InSecond="$2*2}else{print $0}}' $file > $file;done
Attention les nouveau fichiers écrasent les anciens
J'ai ajouté ton code dans mon script double_duration.sh mais j'ai le résultat suivant:
$ ./double_duration.sh
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
awk: not found
Y-a-il quelque chose à paramétrer?
Oui, installer "awk" ;-\
Il faut que tu installe awk pour cygwin et tu n'as pas besoin de renommer les fichiers, il prend tout les fichiers du répertoire.