[Script Shell]A quoi sert sed -f

Fermé
Ghis - 21 févr. 2006 à 09:57
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 21 févr. 2006 à 18:03
Bonjour,
A quoi sert la commande sed -f ??
Merci
A voir également:

8 réponses

ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
21 févr. 2006 à 10:02
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 févr. 2006 à 10:03
Salut,

"man sed" :
DESCRIPTION
       Sed  is a stream editor.  A stream editor is used to perform basic text
       transformations on an input stream (a file or input from  a  pipeline).
       While  in  some  ways similar to an editor which permits scripted edits
       (such as ed), sed works by making only one pass over the input(s),  and
       is consequently more efficient.  But it is sed's ability to filter text
       in a pipeline which particularly distinguishes it from other  types  of
       editors.

-f script-file, --file=script-file

              
add the contents of script-file to the commands to be executed
La commande seule comme ça ne sert à rien !
En fait derrière le "-f" il faut appeler un "script sed". L'option "-f" est là justement pour signifier à la commande "sed" qu'il faut qu'elle puise ses paramètres et options dans le fichier désigné par l'option "-f".
0
Merci pour les infos,
J'ai l'impression que chez moi la commande fais des bizzareries...
Voilà, g dans mon fichier .sed la commande :
s/ZURL/serveurbidon.bidon:2020\\?gfdg&gfdgfd
biensur l'URL est bidon mais elle contient des caractères speciaux % & ? / le prob est que ces caractères sont réinterprétés..
- le & est remplacé par le ZURL de la commande
- je dois mettre \\ dans mon URL pour avoir un slash....
-le ? est remplacé par un / ....
bref ça deconne la solution que j'ai trouvé est de mettre \\ pour un "/" et faire précédé les caractères speciax par un \ ..
Il n'y aurait pas un autre moyen?
Merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 févr. 2006 à 15:51
Salut,

Alors pour commencer, le slash ( / ) est recommandé par convention comme sépararteur pour une meilleure lisibilité, mais rien n'empêche d'utiliser le caractère de son choix... comme "@" ou "!" ou encore "µ".

De plus si tu entoures ta commande de substitution de quotes simples ( ' ) au lieu de guillemets ou quotes doubles ( " ), tu pourras très bien substituer les caractères "&,?,!,% et / sans les protéger par un back-slash ( \ ) ;-))
[jp@MDK tmpfs]$ echo "http://www.commentcamarche.net/20%&=?" | sed 's!/20%&=?! Il y a pas mieux!'
http://www.commentcamarche.net Il y a pas mieux

[jp@MDK tmpfs]$ echo "http://www.commentcamarche.net/20%&=?" | sed 's@/20%&=?@ Il y a pas mieux !@'
http://www.commentcamarche.net Il y a pas mieux !

[jp@MDK tmpfs]$ echo "http://www.commentcamarche.net/20%&=?" | sed "s@/20%&=?@ Il y a pas mieux !@"
bash: !@": event not found
[jp@MDK tmpfs]$
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup pour ton aide jipicy.
Je ne comprend pas trop les exemples....Tu retires les caractères speciaux si je comprends bien, mais moi j'en ai besoin..et la syntaxe de mon sed est
sed -f fichier.sed template.html > fichier.html
Merci.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 févr. 2006 à 16:27
Arfffffffffff :-(
Oui désolé j'ai fait les tests que dans un sens.
Il semblerait tout de même qu'il n'y ait que le caractère "&" à protéger (\&) en employant les quotes simples, les autres caractères n'étant pas remplacés.
0
Oui effectivement seul le & est à protéger le ? ne pose pas de prob et les autres non plus d'ailleurs...
Serais tu me dire pour quoi "\\" dans l'URL ontenu dans mon fichier text me donne un / dans mon html ....c'est le seul moyen que g trouvé pour avoir un /.. etrange.
Encore merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 févr. 2006 à 17:31
Euh...!!! J'ai pas tout compris là :-\
Tu peux me donner un exemple concret s'il te plaît, merci.
0
Donc voilà la situation.
En fait, j'ai un script qui extrait des données dans un fichier texte, dont une URL avec des caratères speciaux (URL qui va servir de lien dans un mail).
Ces données extraites sont placées dans un fichier sed.
Ce fichier sed est substitué via le script à un fichier template, un html qui me sert de modele de mail.
Le problème et que pour resoudre mes soucis, je dois modifier l'URL directement dans le fichier texte avec les fameux "\" et en plus etant donné que mes / sont refusés j'ai testé des choses et il s'est avéré que la combinaison \\ me renvoi dans le mail un /...
voilà, en esperant avoir été clair :)
Merci.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
21 févr. 2006 à 18:03
Ok.

Par contre j'ai pas d'explication pour ça :-\
0