Dans un script, je travaille sur des fichiers qui ont, dans leurs noms
complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des problèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a à la
fois des blancs et une apostrophe, mais j'imagine qu'il existe d'autres
caractères bizarres).
Dans un script, je travaille sur des fichiers qui ont, dans leurs noms
complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des problèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a à la
fois des blancs et une apostrophe, mais j'imagine qu'il existe d'autres
caractères bizarres).
Dans un script, je travaille sur des fichiers qui ont, dans leurs noms
complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des problèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a à la
fois des blancs et une apostrophe, mais j'imagine qu'il existe d'autres
caractères bizarres).
Le 27 avr. 2012 à 17:07, David BERCOT a écrit :Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des pro blèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a Ã
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de si mplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de ne
quoter que ce qui peut poser de problème et de ne pas oublier les
accolades pour référencer les variables.
Le 27 avr. 2012 à 17:07, David BERCOT a écrit :
Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des pro blèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a Ã
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de si mplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de ne
quoter que ce qui peut poser de problème et de ne pas oublier les
accolades pour référencer les variables.
Le 27 avr. 2012 à 17:07, David BERCOT a écrit :Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des pro blèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a Ã
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de si mplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de ne
quoter que ce qui peut poser de problème et de ne pas oublier les
accolades pour référencer les variables.
Le Sat, 28 Apr 2012 13:18:15 +0200,
Pierre Malard a écrit :Le 27 avr. 2012 à 17:07, David BERCOT a écrit :Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des problèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a à
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de simplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de ne
quoter que ce qui peut poser de problème et de ne pas oublier les
accolades pour référencer les variables.
En effet, c'est ce que j'ai essayé de faire de manière générale et ça
marche plutôt bien.
Par contre, ça ne marche pas pour :
ssh $nomESX "ls -l "`dirname "$pathVM"`/*.vmdk""
D'ailleurs, si je ne dis pas de bêtises, même en mettant le nom du
répertoire de manière "protégée", ça ne fonctionne pas non plus...
En fait, avec cette ligne, ça ne marche que si le répertoire n'a pas de
caractère bizarre (blanc par exemple) et qu'il n'est justement pas
entre double quote.
Je dois avoir une erreur quelque part...
Le Sat, 28 Apr 2012 13:18:15 +0200,
Pierre Malard <plm@teledetection.fr> a écrit :
Le 27 avr. 2012 à 17:07, David BERCOT a écrit :
Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des problèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a à
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de simplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de ne
quoter que ce qui peut poser de problème et de ne pas oublier les
accolades pour référencer les variables.
En effet, c'est ce que j'ai essayé de faire de manière générale et ça
marche plutôt bien.
Par contre, ça ne marche pas pour :
ssh $nomESX "ls -l "`dirname "$pathVM"`/*.vmdk""
D'ailleurs, si je ne dis pas de bêtises, même en mettant le nom du
répertoire de manière "protégée", ça ne fonctionne pas non plus...
En fait, avec cette ligne, ça ne marche que si le répertoire n'a pas de
caractère bizarre (blanc par exemple) et qu'il n'est justement pas
entre double quote.
Je dois avoir une erreur quelque part...
Le Sat, 28 Apr 2012 13:18:15 +0200,
Pierre Malard a écrit :Le 27 avr. 2012 à 17:07, David BERCOT a écrit :Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autres
caractères spéciaux. Ceci me pose bien évidemment des problèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a à
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de simplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de ne
quoter que ce qui peut poser de problème et de ne pas oublier les
accolades pour référencer les variables.
En effet, c'est ce que j'ai essayé de faire de manière générale et ça
marche plutôt bien.
Par contre, ça ne marche pas pour :
ssh $nomESX "ls -l "`dirname "$pathVM"`/*.vmdk""
D'ailleurs, si je ne dis pas de bêtises, même en mettant le nom du
répertoire de manière "protégée", ça ne fonctionne pas non plus...
En fait, avec cette ligne, ça ne marche que si le répertoire n'a pas de
caractère bizarre (blanc par exemple) et qu'il n'est justement pas
entre double quote.
Je dois avoir une erreur quelque part...
Le 28 avr. 2012 à 16:52, David BERCOT a écrit :Le Sat, 28 Apr 2012 13:18:15 +0200,
Pierre Malard a écrit :Le 27 avr. 2012 à 17:07, David BERCOT a écrit :Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autr es
caractères spéciaux. Ceci me pose bien évidemment des p roblèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a Ã
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de simplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de
ne quoter que ce qui peut poser de problème et de ne pas oublier l es
accolades pour référencer les variables.
En effet, c'est ce que j'ai essayé de faire de manière gé nérale et ça
marche plutôt bien.
Par contre, ça ne marche pas pour :
ssh $nomESX "ls -l "`dirname "$pathVM"`/*.vmdk""
D'ailleurs, si je ne dis pas de bêtises, même en mettant le no m du
répertoire de manière "protégée", ça ne fonctio nne pas non plus...
En fait, avec cette ligne, ça ne marche que si le répertoire n 'a pas
de caractère bizarre (blanc par exemple) et qu'il n'est justement p as
entre double quote.
Je dois avoir une erreur quelque part...
Ça y est, j'ai trouvé !
J'avais pensé que c'était l'utilisation d'un autre shell que BAS H ou
vous proposer de remonter d'un répertoire avant de lancer le "ssh", ou
vous proposer d'utiliser "$()" plutôt que les classiques "back-quotes"
mais c'était beaucoup plus simple.
Vous avez "quoté" le "/*.vmdk". Hors, puisque l'étoile est fourn ie
"quotée" au shell qui lance le "ls", il ne l'interprète pas et d emande
au "ls" de lister un fichier dont le nom est réellement "*.vmdk". il
vous suffit de déplacer ceci comme ça :
ssh $nomESX "ls -l "`dirname "$pathVM"`"/*.vmdk"
J'ai essayé chez moi, ça marche parfaitement :-)
Le 28 avr. 2012 à 16:52, David BERCOT a écrit :
Le Sat, 28 Apr 2012 13:18:15 +0200,
Pierre Malard <plm@teledetection.fr> a écrit :
Le 27 avr. 2012 à 17:07, David BERCOT a écrit :
Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autr es
caractères spéciaux. Ceci me pose bien évidemment des p roblèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a Ã
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de simplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de
ne quoter que ce qui peut poser de problème et de ne pas oublier l es
accolades pour référencer les variables.
En effet, c'est ce que j'ai essayé de faire de manière gé nérale et ça
marche plutôt bien.
Par contre, ça ne marche pas pour :
ssh $nomESX "ls -l "`dirname "$pathVM"`/*.vmdk""
D'ailleurs, si je ne dis pas de bêtises, même en mettant le no m du
répertoire de manière "protégée", ça ne fonctio nne pas non plus...
En fait, avec cette ligne, ça ne marche que si le répertoire n 'a pas
de caractère bizarre (blanc par exemple) et qu'il n'est justement p as
entre double quote.
Je dois avoir une erreur quelque part...
Ça y est, j'ai trouvé !
J'avais pensé que c'était l'utilisation d'un autre shell que BAS H ou
vous proposer de remonter d'un répertoire avant de lancer le "ssh", ou
vous proposer d'utiliser "$()" plutôt que les classiques "back-quotes"
mais c'était beaucoup plus simple.
Vous avez "quoté" le "/*.vmdk". Hors, puisque l'étoile est fourn ie
"quotée" au shell qui lance le "ls", il ne l'interprète pas et d emande
au "ls" de lister un fichier dont le nom est réellement "*.vmdk". il
vous suffit de déplacer ceci comme ça :
ssh $nomESX "ls -l "`dirname "$pathVM"`"/*.vmdk"
J'ai essayé chez moi, ça marche parfaitement :-)
Le 28 avr. 2012 à 16:52, David BERCOT a écrit :Le Sat, 28 Apr 2012 13:18:15 +0200,
Pierre Malard a écrit :Le 27 avr. 2012 à 17:07, David BERCOT a écrit :Dans un script, je travaille sur des fichiers qui ont, dans leurs
noms complets (répertoire + nom de fichier), des blancs et d'autr es
caractères spéciaux. Ceci me pose bien évidemment des p roblèmes sur
certains traitements.
Je me demandais s'il existait une fonction de base qui permette de
transformer le nom initial en nom... utilisable. Par exemple,
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk
serait transformé en
/vmfs/volumes/4f33a50e-0762c7f9-9763-001a6436484a/s47z038 - Test
d'installation De/*.vmdk [oui, c'est de l'ESX ;-)]
Si vous avez une piste, je suis preneur (dans mon exemple, il y a Ã
la fois des blancs et une apostrophe, mais j'imagine qu'il existe
d'autres caractères bizarres).
Je ne sais pas si ça peut répondre, mais as-tu essayé de simplement
"quoter" ces noms de fichiers dans ton shell-script ? Attention de
ne quoter que ce qui peut poser de problème et de ne pas oublier l es
accolades pour référencer les variables.
En effet, c'est ce que j'ai essayé de faire de manière gé nérale et ça
marche plutôt bien.
Par contre, ça ne marche pas pour :
ssh $nomESX "ls -l "`dirname "$pathVM"`/*.vmdk""
D'ailleurs, si je ne dis pas de bêtises, même en mettant le no m du
répertoire de manière "protégée", ça ne fonctio nne pas non plus...
En fait, avec cette ligne, ça ne marche que si le répertoire n 'a pas
de caractère bizarre (blanc par exemple) et qu'il n'est justement p as
entre double quote.
Je dois avoir une erreur quelque part...
Ça y est, j'ai trouvé !
J'avais pensé que c'était l'utilisation d'un autre shell que BAS H ou
vous proposer de remonter d'un répertoire avant de lancer le "ssh", ou
vous proposer d'utiliser "$()" plutôt que les classiques "back-quotes"
mais c'était beaucoup plus simple.
Vous avez "quoté" le "/*.vmdk". Hors, puisque l'étoile est fourn ie
"quotée" au shell qui lance le "ls", il ne l'interprète pas et d emande
au "ls" de lister un fichier dont le nom est réellement "*.vmdk". il
vous suffit de déplacer ceci comme ça :
ssh $nomESX "ls -l "`dirname "$pathVM"`"/*.vmdk"
J'ai essayé chez moi, ça marche parfaitement :-)