Remplacer un espace par un caractère dans ksh

Fermé
harunabdurrahman - 9 mars 2011 à 18:44
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 10 mars 2011 à 10:17
Bonjour,
Je fais face à une chaîne du genre:
A.B.c d e
Sachant que je dois séparer A,B,C et la chaîne 'd e f' pour qu'ils forment quatre blocs distincts.
La commande que j'ai mise est:

PREMIERBLOC='basename $nomDeLaChaine | awk -F. '{print $1}''
SECONDBLOC='basename $nomDeLaChaine | awk -F. '{print $2}''
TROISIEMEBLOC='basename $nomDeLaChaine | awk -F. '{print $3}''
'



Les deux premiers blocs affichent ce que j'attends;
par contre pour le troisième bloc, ça plante, j'ai en sortie pour la commande:
echo $PREMIERBLOC "_"$SECONDBLOC "_" $TROISIEMEBLOC
ceci:
A_B_C_d
e_ _ _
f_ _ _
ce qui est totalement bizarre!!!
En somme j'ai essayé de remplacer le caractère whitespace par un _ mais je n'y arrive pas;
d'où ma question: comment peut on faire pour remplacer un espace par un caractère en Ksh??
Merci beaucoup;
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
9 mars 2011 à 19:07
Salut,

Dis-nous a quoi ressemble ta chaine de départ et ce que tu veux réellement à la sortie.

Merci ;-))
0
harunabdurrahman
9 mars 2011 à 20:56
Salut zipe31,
la chaine de depart ressemble a ca
A.B.c d e
un string A separe d'un string B par un point, et un string B separe d'un string c par un point, 'c' est separe de 'd' par un espace, et 'd' est separe de 'e' par un espace,
ce que je veux c'est assigner le substring 'c d e' en une seule variable, pour avoir a la fin:
exemple=c d e
merci
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
9 mars 2011 à 22:44
Alors le plus simple c'est d'utiliser le remplacement de paramètres :

$ echo ${B}
A.B.C d e f

$ echo ${B#* }
d e f

$ echo ${B%% *}
A.B.C
0
harunabdurrahman
10 mars 2011 à 09:57
Bonjour zipe31;
merci pour ton aide mais ça ne marche absolument pas :(
as tu une autre idée?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
10 mars 2011 à 10:17
Qu'est-ce qui ne marche pas ?
T'as un exemple concret s'il te plaît ?
0