#1 Le 13/09/2014, à 16:30
- tarentino
[ RESOLU] Double espace dans une variable
Bonjour à tous....
Là encore, j'ai cherché et en désespoir de cause je me tourne vers vous.
J'ai un fichier dont le nom contient deux espaces contigus "az az"
avec un terminal, si je fais un ls -l, j'obtiens:
-rw-r--r-- 1 root root 0 sept. 10 14:36 az az
Ce que je souhaite faire, c'est obtenir le nom du fichier dans une variable nommée z par exemple
En jonglant avec les sed, awk, cut, etc.... j'arrive bien à isoler le nom mais dès lors que je l'intègre dans sa variable..... hop! le nom perd un des deux espaces.
az<ESP><ESP>az devient az<ESP>az
Help !
Dernière modification par tarentino (Le 13/09/2014, à 21:13)
Hors ligne
#2 Le 13/09/2014, à 16:35
- jplemoine
Re : [ RESOLU] Double espace dans une variable
Ce que je souhaite faire, c'est obtenir le nom du fichier dans une variable nommée z par exemple
En quel langage ? Peux-tu monter le code en cause ?
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#3 Le 13/09/2014, à 17:06
- tarentino
Re : [ RESOLU] Double espace dans une variable
Mince oui j'ai oublié de préciser, c'est en bash
le code simplement:
#!/bin/bash
z=$(ls -l $*)
echo $z
Dernière modification par tarentino (Le 13/09/2014, à 17:07)
Hors ligne
#4 Le 13/09/2014, à 17:21
- jplemoine
Re : [ RESOLU] Double espace dans une variable
Essaies (à priori il faut encadrer par des guillemets) :
#!/bin/bash
z="$(ls -l $*)"
echo "$z"
PS : je ne sais pas à quoi sert le $ dans le ls... Es-tu sûr qu'il le faille ?
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#5 Le 13/09/2014, à 18:18
- pingouinux
Re : [ RESOLU] Double espace dans une variable
Bonjour,
Voici des exemples
$ z="az az"
$ echo "$z"
az az
$ touch "az az"
$ z=az*
$ echo $z
az az
Hors ligne
#6 Le 13/09/2014, à 20:31
- tarentino
Re : [ RESOLU] Double espace dans une variable
Merci pour vos réponses
==========
jplemoine, j'ai testé ta solution. Elle fonctionne.
==========
pingouinux, tu m'as permis de comprendre mon erreur, j'ai omis de mettre les guillemets autour du z$
Tous les deux, vous m'avez aidé à comprendre. C'est une étourderie, je ne sais pas pourquoi j'ai buté comme ça.....
Merci encore à vous tous......
Hors ligne
#7 Le 13/09/2014, à 20:34
- jplemoine
Re : [ RESOLU] Double espace dans une variable
De rien, peux-tu modifier ton premier post et changer le titre pour qu'il devienne [Résolu] Double espace dans une variable
?
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#8 Le 13/09/2014, à 21:12
- tarentino
Re : [ RESOLU] Double espace dans une variable
OK je savais pas comment mettre résolu
Hors ligne
#9 Le 13/09/2014, à 21:20
- pingouinux
Re : [ RESOLU] Double espace dans une variable
@tarentino :
Si tu veux que ta variable z contienne le résultat de ls -l des fichiers donnés en paramètres du script :
#!/bin/bash
z=$(ls -l "$@")
echo "$z"
Exemple :
touch "az az" "az bz"
./le_script az*
Résultat
-rw-r----- 1 user user 0 Sep 13 21:17 az az
-rw-r----- 1 user user 0 Sep 13 21:17 az bz
Hors ligne
#10 Le 13/09/2014, à 22:02
- tarentino
Re : [ RESOLU] Double espace dans une variable
Les gars, j'ai rien à dire, vous êtes mes dieux du code !
Merci encore pingouinux
Hors ligne
#11 Le 13/09/2014, à 22:23
- jplemoine
Re : [ RESOLU] Double espace dans une variable
Les gars, j'ai rien à dire, vous êtes mes dieux du code !
C'est gentil mais en ce qui me concerne, c'est faux. C'est juste que j'ai eu le cas où dans un test si la variable est vide, ça ne fonctionnait pas.
Après avoir cherché "longtemps", j'ai fini par trouver...
Donc là, je me suis dit que ça devait être pareil.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne