Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

tarentino a écrit :

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

tarentino a écrit :

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