OVH Cloud OVH Cloud

bash et les espaces

3 réponses
Avatar
fchiausa
bonjour,
j'essais d'ecrire un petit script mais je rencontre le probleme des
fichiers qui contiennent des espace dans leur noms.
si dans un dossier ou il y a un fichier qui contient un espace par
exemple "fich ier.txt" je fais :
ls | gawk '{ print $0}'
j'obtiens a l'ecran :
fich ier.txt
comment dois je faire pour obtenir :
fich\ ier.txt
merci de votre aide
tchoua

3 réponses

Avatar
Rakotomandimby (R12y) Mihamina
( Tue, 15 Feb 2005 19:53:26 -0800 ) fchiausa :

ls | gawk '{ print $0}'


ls | gawk '{print $0}' | sed 's/ / /g'

C'est pas treès beau mais bon...
--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

Avatar
FAb
"Rakotomandimby (R12y) Mihamina" writes:

( Tue, 15 Feb 2005 19:53:26 -0800 ) fchiausa :

ls | gawk '{ print $0}'


ls | gawk '{print $0}' | sed 's/ / /g'

C'est pas treès beau mais bon...


Sinon il suffit de protéger toutes les variables contenant des noms de fichiers
par des double-quotes. Ce n'est pas très beau, cela passe mal à la colorisation
de mon emacs mais c'est efficace. Je m'en suis servi tout récemment (1)

<joke class="private" target="R12y">
dans un script psan
</joke>

(1) si si sérieux.
for f in *.txt
do
stat "$f"
done



FAb


Avatar
Laurent Wacrenier
Rakotomandimby (R12y) Mihamina écrit:
( Tue, 15 Feb 2005 19:53:26 -0800 ) fchiausa :

ls | gawk '{ print $0}'


ls | gawk '{print $0}' | sed 's/ / /g'

C'est pas treès beau mais bon...


Ça marchera plus avec avec sed 's/./&/g'
Mais le nom du fichier peut contenir des retours chariot.
La question est mal posée, en fait.