Probleme commande
Bonjour,
dans un exercice, il est demandé de changer l'extension du .htm en .html
la solution que j'ai trouvé est:
j'ai pas compris le sed -e, qu'est ce que cela signifie, est ce qu'il y a une autre solution à cet exercice.
Voila ce que j'ai fait:
mais le probleme c'est que à chaque fois j'execute la commende une 'l' s'ajoute à la fin.
merci
--
The best way to escape from a problem is to solve it.
dans un exercice, il est demandé de changer l'extension du .htm en .html
la solution que j'ai trouvé est:
#!/bin/sh for i in $@; do mv $i `echo $i | sed -e "s/htm$/html/"` done;
j'ai pas compris le sed -e, qu'est ce que cela signifie, est ce qu'il y a une autre solution à cet exercice.
Voila ce que j'ai fait:
mv $i ${i}l
mais le probleme c'est que à chaque fois j'execute la commende une 'l' s'ajoute à la fin.
merci
--
The best way to escape from a problem is to solve it.
Configuration: Linux Fedora Firefox 2.0.0.8
1 réponse
-
Pour comprendre sed, tape dans une console :
man sed
Sed est un outil puissant mais là il est disproportionné par rapport à ce que tu veux faire. Ta seconde approche est donc plus proche de ce qu'il faut chercher à faire. En fait le seul problème c'est que tu appliques ton mv à tous les fichiers (et pas seulement aux fichiers terminant par .html)
Il suffit donc de faire un truc du genrefor x in `ls *html`; do mv $x ${x}l; done
Cette solution n'est pas parfaite car en toute rigueur il faudrait s'assurer que x n'est pas un répertoire (chose que tu peux vérifier avec un if[ -d ... ]. Bref tu touches au but ;-)
http://www.linuxconfig.org/Bash_scripting_Tutorialdirect
Bonne chance