Bonjour!
Est ce que quelqu'un saurait comment remplacer un "/" par un espace ?? J'ai par exemple: "toto/tata/popo/titi" et j'ai ensuite:"toto tata popo titi". Je suis sous Mandriva. Merci ^^
Bonjour!
Est ce que quelqu'un saurait comment remplacer un "/" par un espace ?? J'ai par exemple: "toto/tata/popo/titi" et j'ai ensuite:"toto tata popo titi". Je suis sous Mandriva. Merci ^^
Dans quoi ?Envoyé par solp
Cà fait ce que tu demandes, mais je ne suis pas sût que ce soit très utile
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "toto/titi/tata" | tr "/" " "![]()
En fait, je souhaite prendre les données séparées par des "/" comme variables. J'ai fait ce que tu m'as dit, puis j'ai fait un read mais cela ne fonctionne pas !!?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo "toto/titi/tata" | tr "/" " "; read nom1 nom2 nom3 echo " Voici mes trois amis: $nom1, $nom2, $nom3"
Une solution parmis d'autres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo "toto/titi/tata" | awk -F '/' '{ print "Voici mes tois amis: "$1 ", " $2 " et " $3 }
suivant ton shell tu peux faire
si ça ne marche pas, il faut récupérer chaque variable individuellement...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ echo "toto/titi/tata"|IFS=/ read nom1 nom2 nom3 $ echo " Voici mes trois amis: $nom1, $nom2, $nom3" Voici mes trois amis: toto, titi, tata
Justement, j'ai vu à plusieurs reprises, sur le net, que read gérait assez mal la redirection par les tubes et que un echo pipé ne fonctionnait généralement pas, qu'un cat de fichier pipé pouvait fonctionner sans garantie, mais qu'un < depuis un fichier était sans soucis.Envoyé par laurentschneider
J'ai constaté par moi-même ce comportement, avec bash 3.00.16 : le code ci-dessus n'est pas fonctionnel, les trois variables restent à leurs valeurs antérieures.
Par contre, ce code fonctionne :Le passage par un fichier (fût-il temporaire, merci mktemp) est quand même un peu dommage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ echo "toto/titi/tata" > toto.txt ; IFS=/ read nom1 nom2 nom3 < toto.txt ; rm -f toto.txt $ echo " Voici mes trois amis: $nom1, $nom2, $nom3" Voici mes trois amis: toto, titi, tata
Si quelqu'un a une autre idée ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ eval $(echo "toto/titi/tata"|awk '{print "nom"NR"="$1}' RS=/) $ echo " Voici mes trois amis: $nom1, $nom2, $nom3" Voici mes trois amis: toto, titi, tata
Je savais que, comme PERL, le bash était du type TMTOWTDI mais là, bravo!![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager