Rechercher : dans
Par :

[shell] modifier une chaine de caractères

Dernière réponse le 27 jun 2005 à 20:34:22 jebok, le 27 jun 2005 à 17:18:55 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [shell] modifier une chaine de caractères » dans :
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Quelques fonctions utiles VoirCette astuce vous montrera comment utiliser quelques fonctions très utiles en PHP: Retourne la longueur de la chaîne Utilisation Résultat Passe tous les caractères en minuscules. Utilisation Résultat Passe tous les caractères en...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

jipicy, le 27 jun 2005 à 17:59:24

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). Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

2

jebok, le 27 jun 2005 à 18:01:35

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'
Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)

Répondre à jebok

3

jipicy, le 27 jun 2005 à 18:10:18

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]$
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

4

 jipicy, le 27 jun 2005 à 20:34:22
  • +1

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) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy
Collection CommentÇaMarche.net