Enlever tous les tirets dans une url

Fermé
noaho Messages postés 6 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 16 mars 2009 - 15 mars 2009 à 17:41
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 16 mars 2009 à 09:39
Bonjour, j'ai très honte.
Je n'arrive pas à transformer (shell bash)
http://www.le-machin-plein-de tirets.com
en
http://www.lemachinpleindetirets.com
(c'est à dire à virer les tirets normaux droit, pour ensuite faire (ça j' y arrive)
lemachinpleindetirets
qui sera le nom de mon dossier d'hébergement du site ci dessus sur les tirets :=) tarets qui va se créer tout seul.
Merci. Vous me faites gagner un we....Il y a sed mais je n'ai pas saisi encore ni trouvé de doc claire dessus
noaho1143 est déconnecté Agir sur la réputation de noaho1143 Signaler un message hors-charte Configuration
MacBook
Mac OS X - Tiger 10.4
iPod shuffle
Modifier/Supprimer le message

6 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
15 mars 2009 à 17:48
Salut,

Comme ça?
echo http://www.le-machin-plein-de-tirets.com |sed 's/-//g'
http://www.lemachinpleindetirets.com
1
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
15 mars 2009 à 17:57
;-))
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
15 mars 2009 à 17:54
Salut,
echo "http://www.le-machin-plein-de-tirets.com" | sed 's/-//g'
http://www.lemachinpleindetirets.com
;-))
1
noaho Messages postés 6 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 16 mars 2009 1
15 mars 2009 à 17:59
Merci encore - Je vais y arriver avant cette nuit :=)
Et si je veux comprendre.
J'ai croisé pas mal de trucs qui ont cette tête.
Il y a un pipe line qui récupère echo c'est ça ?
Puis sed, une commande Unix c'est ça ?
Qui fait quoi ?
's/-//g' : je reconnais mon tiret entre les /-/ mais s et g
Pour mon excuse, j'ai débuté Shell vendredi....mais bon...
Merci encore une fois
0
noaho Messages postés 6 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 16 mars 2009 1
15 mars 2009 à 18:08
jlpicy : alias vitesse laconique

Merci. Et si je veux y arriver directement
De :
http://www.ce-site-pleinde-tirets-pasunderscore.com (ou .net ou .fr attention deux lettres...)
A :
cesitepleindetiretspasunderscore
futur nom de dossier.
Encore un Sed ?
Demain je me lets à la recherche de SED
Bonne fin de we
Alain
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 > noaho Messages postés 6 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 16 mars 2009
15 mars 2009 à 18:28
Oups je n'avais pas vu la demande :
echo "http://www.ce-site-pleinde-tirets-pasunderscore.com" | sed 's/.*w.//;s/-//g;s/\..*//'
cesitepleindetiretspasunderscore
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
15 mars 2009 à 18:16
s = commande de substitution
s/motif_à_remplacer/motif_de_remplacement/

g = paramètre de globalité (remplacer toutes les occurences d'une même ligne)

Pour plus de détails :
Sed - Introduction à SED - Part I
Sed - Introduction à SED - Part II
Sed - Introduction à SED - Part III
1
noaho Messages postés 6 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 16 mars 2009 1
15 mars 2009 à 18:22
Merci pour l'explication et la doc.
J'imprime et essaye de comprendre dans ma baignoire demain.
Ce que je mettais une matinée à faire en interface graphique, me prendra....deux minutes !!!
Merci encore
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
15 mars 2009 à 18:58
Re,

Oups je n'avais pas vu la demande :
Puisque je suis chiant ;-))

Ca ne marche pas à tout les coups ;-
Voici 2 exemples

1. il y a un w dans le nom de domaine
echo "http://www.ce-site-web-pleinde-tirets-pasunderscore.com" | sed 's/.*w.//;s/-//g;s/\..*//'
bpleindetiretspasunderscore

2. il n'y a pas www. dans le lien
echo "http://ce-site-pleinde-tirets-pasunderscore.com" | sed 's/.*w.//;s/-//g;s/\..*//'
http://cesitepleindetiretspasunderscore

Une solution qui traite c'est deux cas
echo "http://www.ce-site-web-pleinde-tirets-pasunderscore.com" | sed 's/.*www\.\|.*\/\///;s/-//g;s/\..*//'
cesitewebpleindetiretspasunderscore
echo "http://www.ce-site-pleinde-tirets-pasunderscore.com" | sed 's/.*www\.\|.*\/\///;s/-//g;s/\..*//'
cesitepleindetiretspasunderscore
echo "http://ce-site-pleinde-tirets-pasunderscore.com" | sed 's/.*www\.\|.*\/\///;s/-//g;s/\..*//'
cesitepleindetiretspasunderscore
1
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
15 mars 2009 à 19:05
Oups oups oups ;-((

Merci, je suis allé trop vite.
Lorsque j'ai tapé le point après le w (.*w.) il est clair que je pensé au point (\.) en lui même et non à sa représentation en tant que regex (caractère quelconque).

Donc merci encore pour la rectification et les améliorations notoires ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
15 mars 2009 à 19:13
Re,


Merci, je suis allé trop vite.
Tu commences à devenir paresseux. C'est bien ;-))

il est clair que je pensé au point (\.) en lui même et non à sa représentation en tant que regex (caractère quelconque).

Oui, je le pensais aussi, d'ailleurs j'étais étonné que tu n'as pas écrit \.
Les moteurs des regex ne sont pas intelligents. Il sont juste persévérants et obéissants aux ordres ;-))
0

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

Posez votre question
noaho Messages postés 6 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 16 mars 2009 1
16 mars 2009 à 09:29
Merci, je vais attaquer les Reg cette semaine.
J'ai un tout petit peu compris.
Dernière chose pour arriver à mon but :

Comment récupérer la sortie du pipe - lesitesansaucuntiret - dans une variable $sanstirets par exemple ?
Ou comment récupérer le contenu de echo ?
Je n'y arrive pas après moultes tentatives et j'ai besoin de cette variaible pour la suite.
Et de bons livres sur le sujet :=) car c'est un monde nouveau et exhaltant mais compliqué pour moi.
1
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 139
16 mars 2009 à 09:39
pour attribuer ta variable, je dirais:

snow_frog@mars:~/Documents$ SANSTIRET=$(echo "http://www.ce-site-web-pleinde-tirets-pasunderscore.com" | sed 's/.*www\.\|.*\/\///;s/-//g;s/\..*//')
snow_frog@mars:~/Documents$ echo $SANSTIRET
cesitewebpleindetiretspasunderscore

0