Commande shell

Résolu/Fermé
Utilisateur anonyme - Modifié par Kasper77 le 31/05/2010 à 13:35
 Utilisateur anonyme - 1 juin 2010 à 08:19
Bonjour,

Je travaille actuellement sur un programme écrit en Shell et je rencontre un problème sur cette ligne :

sed -e 's/(RUBRIQUES)/(RUBRIQUES){tout}/' -e 's/tout}{tout/tout/' $z >nil

Le problème c'est que je ne connais pas cette commande vu que je débute et son utilisation ici semble complexe...
Donc, est-ce que quelqu'un pourrait m'expliquer ce qu'exécute ce bout de code ?

Merci beaucoup !

Voici le programme en entier :

# Cf http://www.opensystemarmor.com/spip.php?article30

root=\\sme\spip\html
rep=$root\plugins\sarkaspip_3

fichiers='rubrique.html
rubrique_sarka.html
noisettes/rubrique/inc_rubrique_description.html
noisettes/rubrique/inc_rubrique_navigation.html
noisettes/navigation/inc_menu_rubriques_1.html
noisettes/navigation/inc_menu_rubriques_2.html
noisettes/navigation/inc_menu_rubriques_3.html
'
# les fichiers en _nav_ ont été ajoutés pour la version 3.0.2 de Sarka

for f in $fichiers
do
z=$rep/$f
echo
echo On traite $z
if [ -f $z ]
then
echo " OK"
copy $z $z-'date +'%Y-%m-%d-%H-%M-%S''
# -e => spécifie les commandes à appliquer sur le fichier quand il y en plusieurs
sed -e 's/(RUBRIQUES)/(RUBRIQUES){tout}/' -e 's/tout}{tout/tout/' $z >nil
mv nil $z
else
echo " N'EXISTE PAS"
fi
done


            
                
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
31 mai 2010 à 14:29
Salut,

Voir sed dans la FAQ...

sed -e
La commande 'sed' avec l'option "-e" pour indiquer qu'il y aura plusieurs commandes à enchainer


's/(RUBRIQUES)/(RUBRIQUES){tout}/'
On substitue (commande "s") le motif "(RUBRIQUES)" par lui même suivi de "{tout}" ((RUBRIQUES){tout})


-e
Indique une nouvelle commande à exécuter


's/tout}{tout/tout/'
On substitue "tout}{tout" par "tout"


$z >nil
$z représentant le fichier en entrée, on écrit donc le tout sur dans fichier "nil" en sortie.


La syntaxe est un peu lourde tout de même ;-\
Sur quel système s'applique ce script ?
Quelle version de "sed" (sed --version) ?
0
Utilisateur anonyme
1 juin 2010 à 08:19
Merci pour la réponse, elle m'a beaucoup aidé.

En fait, je travaille sur un système Windows et c'est pour ca que j'avais besoin de déchiffrer ce code qui s'exécute normalement automatiquement.
0