[shell] modifier une chaine de caractères
Résolu
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.
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
4 réponses
-
ModérateurEssaye 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)-
-
@dagosgdsl, trompé de post et j'arrive pas à modifier...
sed "s/ /\n/g" -i fichier
marche chez moi...
-
-
ModérateurSalut,
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). -
ModérateurPourtant 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]$
;-)) -
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