Bonjour à tous,
J'aimerai parser l'adresse foo.utbm.fr et simplement récupérer le mot foo... Comment puis-je m'y prendre en shell script (sh) ?
Merci d'avance !
Bonjour à tous,
J'aimerai parser l'adresse foo.utbm.fr et simplement récupérer le mot foo... Comment puis-je m'y prendre en shell script (sh) ?
Merci d'avance !
man sed
man expr
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Ok, j'ai tenté ca :
et ca me renvoit 0. Je pense qu'il faut lui dire d'exclure le . entre les deux parenthèses, mais comment fait-on pour faire des exclusions dans un .* ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 a=pouyou.foo.com expr $a : '(.*)\..*'
man expr
Probablement avec "[^.]*"
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
et ça renvoie pouyou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 gawk 'BEGIN {FS="."; OFS="."}{print $1}' < pouyou
le fichier pouyou contient pouyou.foo.com
avec print $2 tu choppes foo
avec print $3 tu choppes com
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
J'ai essayé, mais ca ne marche toujours pas :
ggnore, tu peux m'expliquer rapidement ta commande (notemment les FS et OFS)... sinon, te prend pas la tête, je peux fouiller la man aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 bash-2.05b$ a=foo.bar.com bash-2.05b$ expr $a : '([^.]*)\..*' 0 bash-2.05b$
http://www.shellunix.com/awk.html
FS = séparateur de champs en entrée
OFS = séparateur de champs en sortie
ma ligne de commande ne marche pas pour toi ?
le problème avec awk, c'est que je crois qu'il faut un fichier en entrée.
expr a l'air de renvoyer uniquemen 0,1 ou 2
ta variable est peut être modifiée ? peut être qu'un echo $a serait intéressant
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
1. Merci pour le lien.
2. Ok pour les informations
3. Si, ta commande marche bien, je l'ai "amméliorée" pour ne pas avoir à passer par un fichier :
Sinon, non la variable n'est pas modifiée avec expr... je pense qu'il renvoit 0 parce justement il ne trouve rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 bash-2.05b$ echo "pouyou.yaoo.com" | gawk 'BEGIN {FS="."; OFS="."}{print $1}' pouyou
N'oublie pas de cliquer sur résolu![]()
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
Avec epxr, les parenthèses doivent être banalisées
Sinon, il reste le bon vieux sed
Code : Sélectionner tout - Visualiser dans une fenêtre à part expr pouyou.foo.com : '\([^.]*\)'
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo pouyou.foo.com |sed 's#\([^.]*\).*#\1#'
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Partager