J'ai écrit un script qui permet de remplacer le premier espace qui se
trouve dans un nom de fichier, à l'aide de la ligne:
File_Dest=`echo "${File_Orig}" | sed -e 's/ /_/'`
Alors que ce que je voudrais, c'est remplacer *tous* les espaces
présents dans ce nom de fichier par un seul '_' si les espaces sont
consécutifs.
Qu'aie-je loupé ?
Je vous épargne mes nombreux et vains essais de regexp tous plus foireux
les uns que les autres :((
Le script est là <http://roulaize.fr/scripts_bash/StripSpaces>.
Si vous avez le temps d'y jeter un coup d'oeil, j'aimerais que vous me
disiez ce que vous pensez de:
for file in `find . -maxdepth 1 -type f -name '* *'| cut -b3-`
car cut est le seul moyen que j'ai trouvé pour enlever le './' devant le
nom de fichier renvoyé par find, et j'aime pas trop...
Question subsidiaire: Comment permettre à l'utilisateur de choisir le
caractère de substitution ?
La ligne
File_Dest=`echo "${File_Orig}" | sed -e 's/ /${Chaine_de_remplacement}/'`
ne marche pas (${Chaine_de_remplacement} n'est pas interprété)...
PS: Aie-je raison de croire qu'il n'est pas nécessaire de restaurer
l'IFS à $OLD_IFS ?
Toute critique/correction acceptée avec respect.
Merci de votre aide.
--
Multi-taches, comme Windows et Woolite, ou multitâches, comme Unix ?
Hugo (né il y a 1 371 473 222 secondes)
sed -e 's/ */_/g' (il y a deux blancs avant l'étoile, et c'est le g qui fait le remplacement multiple.)
Je ne comprends pas comment ton _double_ espace peut matcher sur un nom de fichier avec _un_ seul espace.
Le deuxième espace est suivi du caractère * qui est un multiplicateur « 0 fois ou plus ».
Hugolino
Le Thu, 11 Oct 2007 00:34:38 +0200, Olivier Miakinen a écrit:
sed -e 's/ */_/g' (il y a deux blancs avant l'étoile, et c'est le g qui fait le remplacement multiple.)
Je ne comprends pas comment ton _double_ espace peut matcher sur un nom de fichier avec _un_ seul espace.
Le deuxième espace est suivi du caractère * qui est un multiplicateur « 0 fois ou plus ».
La nuit portant conseil, c'est ce que j'avais fini par comprendre. (Si ça se trouve, mes rèves sont hantés par des regexp :)
Merci
--
Je cherche une methode pour verifier si le port 515 est a l'ecoute. Cette requete est a envoyer d'une station Solaris vers un serveur NT. use Net::TCP; $object = new Net::TCP "playstation", 515;
$ok = $object->connect; -+- SB in Guide du linuxien pervers -+-
Le Thu, 11 Oct 2007 00:34:38 +0200, Olivier Miakinen a écrit:
sed -e 's/ */_/g'
(il y a deux blancs avant l'étoile, et c'est le g qui fait le
remplacement multiple.)
Je ne comprends pas comment ton _double_ espace peut matcher sur un
nom de fichier avec _un_ seul espace.
Le deuxième espace est suivi du caractère * qui est un multiplicateur
« 0 fois ou plus ».
La nuit portant conseil, c'est ce que j'avais fini par comprendre. (Si
ça se trouve, mes rèves sont hantés par des regexp :)
Merci
--
Je cherche une methode pour verifier si le port 515 est a l'ecoute.
Cette requete est a envoyer d'une station Solaris vers un serveur NT.
use Net::TCP; $object = new Net::TCP "playstation", 515;
$ok = $object->connect; -+- SB in Guide du linuxien pervers -+-
Le Thu, 11 Oct 2007 00:34:38 +0200, Olivier Miakinen a écrit:
sed -e 's/ */_/g' (il y a deux blancs avant l'étoile, et c'est le g qui fait le remplacement multiple.)
Je ne comprends pas comment ton _double_ espace peut matcher sur un nom de fichier avec _un_ seul espace.
Le deuxième espace est suivi du caractère * qui est un multiplicateur « 0 fois ou plus ».
La nuit portant conseil, c'est ce que j'avais fini par comprendre. (Si ça se trouve, mes rèves sont hantés par des regexp :)
Merci
--
Je cherche une methode pour verifier si le port 515 est a l'ecoute. Cette requete est a envoyer d'une station Solaris vers un serveur NT. use Net::TCP; $object = new Net::TCP "playstation", 515;
$ok = $object->connect; -+- SB in Guide du linuxien pervers -+-
Thierry B.
--{ Hugolino a plopé ceci: }--
Le deuxième espace est suivi du caractère * qui est un multiplicateur « 0 fois ou plus ».
La nuit portant conseil, c'est ce que j'avais fini par comprendre. (Si ça se trouve, mes rèves sont hantés par des regexp :)
Ouch, ça c'est une crise de naxorisme avancé. Il faut absolument soigner ça de suite. Passez donc à mon cabinet, je vais vous faire une ordonnance...
Signé: le GdM autoproclamé.
--
Bah, oui, ça les occupe, genre bac-à-sable... Ah mince, voilà que je me parle à moi-même ?
Fait gaffe, ça s'est vu, yen a qui ont remarqué.
-+- TB in GFA : le tonton s'autoquotera 3 fois -+-
--{ Hugolino a plopé ceci: }--
Le deuxième espace est suivi du caractère * qui est un multiplicateur
« 0 fois ou plus ».
La nuit portant conseil, c'est ce que j'avais fini par comprendre. (Si
ça se trouve, mes rèves sont hantés par des regexp :)
Ouch, ça c'est une crise de naxorisme avancé. Il faut absolument
soigner ça de suite. Passez donc à mon cabinet, je vais vous faire
une ordonnance...
Signé: le GdM autoproclamé.
--
Bah, oui, ça les occupe, genre bac-à-sable...
Ah mince, voilà que je me parle à moi-même ?
Fait gaffe, ça s'est vu, yen a qui ont remarqué.
-+- TB in GFA : le tonton s'autoquotera 3 fois -+-