Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 24-08-2013 07:04:57

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

[Résolu] Script bash - Traitement d'arguments numérotés

Salut les barbus !

Voilà le problème :

find repertoire -type f -iname "liste_video*.php" -exec sed -i '/'$(printf '%04g' $refvideo)'/s,<td>,<td><a href="monsite/'$refnet'/'$refclient'/'$(printf '%04g' $refvideo)'.mpeg">,' {} \+


Cette ligne fonctionne très bien pour ajouter une video telechargeable depuis mon site (grâce à une chaîne ajoutée).
Exemple de la ligne sans la variable video en claire :

find repertoire -type f -iname "liste_video*.php" -exec sed -i '/'0012'/s,<td>,<td><a href="http://monsite/0012.mpeg">,' {} \+



toutefois :
Il y a que la seconde variable ne prend pas le : printf '%04g. Elle me met le numero sans ajouter les zeros, genre pour la video n° 12 si je tape 12 en argument refvideo, le premier $(printf '%04g' $refvideo) fonctionne en indiquant 0012 mais pas le second qui inscrit dans la chaîne le chiffre 12, sans les zéros !
Il me faut donc mettre 0012 pour que cela marche

Voilà voilà voilà... cool

Dernière modification par smolski (24-08-2013 09:44:30)


"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#2 24-08-2013 09:48:44

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu] Script bash - Traitement d'arguments numérotés

Y'a pas de pb dans ta ligne.
Exemple de test :

mkdir /tmp/jojo
cd /tmp/jojo
echo "0012 <td>" > liste_video_bla.php
refvideo=12
find -type f -iname "liste_video*.php" -exec sed -i '/'$(printf '%04g' $refvideo)'/s,<td>,<td><a href="monsite/'$refnet'/'$refclient'/'$(printf '%04g' $refvideo)'.mpeg">,' {} \+
cat liste_video_bla.php
0012 <td><a href="monsite///0012.mpeg">



Le \+ en revanche peut causer problème, je doute fort qu'il soit adapté à la commande sed.


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 24-08-2013 10:01:27

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 4.6.0-0.bpo.1-amd64
(G)UI : gnome 3.14.1
Inscription : 21-10-2008

Re : [Résolu] Script bash - Traitement d'arguments numérotés

Ah matelot, en remplaçant le signe \+ par \; comme tu me l'as indiqué sur IRC, ça marche impec !

Merci flibustier smile

Dernière modification par smolski (24-08-2013 10:03:35)


"Définition d'eric besson : S'il fallait en chier des tonnes pour devenir ministre, il aurait 2 trous du cul." - JP Douillon
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

Pied de page des forums