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
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
A voir également:
- Probleme commande
- Invite de commande - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Commande dism - Guide
- Commande scannow - Guide
1 réponse
Pour comprendre sed, tape dans une console :
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 genre
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
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 genre
for 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