Supprimer une partie d'un hostname avec SED
Résolu
s_0ra
Messages postés
7
Statut
Membre
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai trouvé plusieurs sujets là dessus, mais je n'ai pas réussi à trouver une solution.
J'ai un peu de mal à utiliser SED, mais il me semble avoir déjà trouvé un début de solution.
En entrée j'ai un hostname du type "partie1.partie2.partie3".
J'aimerais récupérer uniquement ce qui se trouve après le premier point, et ce même si le hostname ne comporte que deux parties (partie1.partie2) ou même plus (partie1.partie2.partie3.partie4).
Actuellement, avec
Donc SED m'efface tout ce qu'il y a avant le dernier point, le point compris.
J'aimerais qu'il fasse la même chose, mais avec le premier point, pas le dernier, de façon à obtenir "partie2.partie3".
Merci d'avance pour votre aide.
J'ai trouvé plusieurs sujets là dessus, mais je n'ai pas réussi à trouver une solution.
J'ai un peu de mal à utiliser SED, mais il me semble avoir déjà trouvé un début de solution.
En entrée j'ai un hostname du type "partie1.partie2.partie3".
J'aimerais récupérer uniquement ce qui se trouve après le premier point, et ce même si le hostname ne comporte que deux parties (partie1.partie2) ou même plus (partie1.partie2.partie3.partie4).
Actuellement, avec
echo "partie1.partie2.partie3" | sed "s/.*\.//"il me renvoie uniquement "partie3"
Donc SED m'efface tout ce qu'il y a avant le dernier point, le point compris.
J'aimerais qu'il fasse la même chose, mais avec le premier point, pas le dernier, de façon à obtenir "partie2.partie3".
Merci d'avance pour votre aide.
4 réponses
-
hello
en bash$ var="partie1.partie2.partie3"
$ echo ${var#*.}
partie2.partie3
$ -
Salur s_Ora,
Voila une solution que j'ai trouvé,
sed "s/^\([a-zA-Z1-9]*\)\.\(.*\)$/\2/"
et la tu recuperes tout ce qui se trouve apres ton premier "." -
Salut,
Dans ta solution legrep
ne sert à rien ;-(
$ echo "partie1.partie2.partie3" | cut -d "." -f2-
partie2.partie3
Si tu veux une solution juste avecgrep
:$ echo "partie1.partie2.partie3" | grep -Po "[^.]*.\K.*"
Ou juste avec
partie2.partie3sed
:$ echo "partie1.partie2.partie3" | sed 's/[^.]*.//'
partie2.partie3 -
Finalement, j'ai trouvé moi même la solution avec une autre commande, elle est plus simple et je la comprends mieux !
echo "partie1.partie2.partie3" | grep . | cut -d "." -f2-