Téléchargement
illégal
Posez votre question Signaler

[shell] modifier une chaine de caractères [Résolu]

jebok 371Messages postés 16 mai 2005Date d'inscription - Dernière réponse le 4 mai 2012 à 15:48
Bonjour,

Comment faire pour remplacer tous les espaces d'une chaîne de caractères par des retour chariot ?
j'ai essayé avec la commande sed mais je n'y arrive vraiment pas.

Merci de votre aide.
Lire la suite 

[shell] modifier une chaine de caractères »

8 réponses
Réponse
+3
moins plus
Essaye voir avec "tr" :
cat le_fichier | tr -s ' ' '\n'
mais faudra passer par un fichier temporaire. (le paramètre "-s" n'est là pour que pour supprimer les lignes vides)
dagosg - 11 déc. 2009 à 09:50
sed "s/;\(.\+\)/;\n\1/g" -i fichier
marche chez moi...
dagosg - 11 déc. 2009 à 09:57
dsl, trompé de post et j'arrive pas à modifier...
sed "s/ /\n/g" -i fichier

marche chez moi...
Ajouter un commentaire
Réponse
+2
moins plus
Salut,

Essaie ça :
sed -i 's/ /\n/g' le_fichier
Dans un 1er temps essaie sans le paramètre "-i" (il sert à reécrire directement dans le même fichier sans passer par un fichier temporaire).
jebok- 27 juin 2005 à 18:01
ca ne marche pas car il m'écrit des 'n' à la place des espaces.
et si je fais
sed  's/ /\\n/g' le_fichier
il remplace les espaces par des '\n'
Ajouter un commentaire
Réponse
+1
moins plus
Pourtant chez moi ça marche :
[jp@Mandrake tmpfs]$ cat texte.txt
Bonjour,

Comment faire pour remplacer tous les espaces d'une chaîne de caractères par des retour chariot ?
j'ai essayé avec la commande sed mais je n'y arrive vraiment pas.

Merci de votre aide.

Configuration: ksh

[jp@Mandrake tmpfs]$ sed 's/ /\n/g' texte.txt
Bonjour,

Comment
faire
pour
remplacer
tous
les
espaces
d'une
chaîne
de
caractères
par
des
retour
chariot
?
j'ai
essayé
avec
la
commande
sed
mais
je
n'y
arrive
vraiment
pas.

Merci
de
votre
aide.

Configuration:
ksh
[jp@Mandrake tmpfs]$
;-))
Ano - 4 mai 2012 à 15:48
Ca dépend de ton OS en fait, tout les UNIX et Linux n'ont pas les mêmes versions de sed, entre autre. En testant ta commande sur un RedHat et sur un AIX, ça marche sur le RedHat et pas sur l'AIX.
Ajouter un commentaire
Réponse
+1
moins plus
il faut découper la chaîne en mot. essayes ceci

strtok($string, " ");

Il découpe une chaîne de caractère en mots. il retourne à la ligne après chaque espace
Ajouter un commentaire
Ce document intitulé « [shell] modifier une chaine de caractères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?