#1 Le 26/11/2008, à 11:24
- Kiwi41
Transformer une longue ligne en n lignes de taille fixe.
Bonjour,
je suis confronté a un problème et après avoir retourné les mans de sed et awk je n'arrive toujours pas a mes fins...
Alors voici l'énoncé du problème :
Comment insérer un retour charriot tout les n caractères pour transformer un fichier contenant une longue ligne en un fichier contenant des lignes avec une taille fixe ?
ex : xxxxxxyyyyyyzzzzzz
en insérant un retour à la ligne tout les 6 caractères ->
xxxxxx
yyyyyy
zzzzzz
Edith me rappelle la politesse : Merci d'avance !
Dernière modification par Kiwi41 (Le 26/11/2008, à 11:24)
Hors ligne
#2 Le 26/11/2008, à 12:29
- AnsuzPeorth
Re : Transformer une longue ligne en n lignes de taille fixe.
bjr,
Tu as regarder là
http://abs.traduc.org/abs-5.3-fr/ch09s02.html
Ca devrait t'aider !
#3 Le 26/11/2008, à 12:59
- ®om
Re : Transformer une longue ligne en n lignes de taille fixe.
Quelque chose comme :
echo xxxxxxyyyyyyzzzzzz | sed 's/[a-z]\{6\}/\0\n/g'
Hors ligne
#4 Le 26/11/2008, à 15:06
- Kiwi41
Re : Transformer une longue ligne en n lignes de taille fixe.
Quelque chose comme :
echo xxxxxxyyyyyyzzzzzz | sed 's/[a-z]\{6\}/\0\n/g'
echo xxxxxxyyyyyyzzzzzz | sed 's/[a-z]\{6\}/\0\n/g'
0n0n0n
Je cherche le paramètre qui reprend le motif trouvé pour lui ajouter un \n.
Hors ligne
#5 Le 26/11/2008, à 15:17
- ®om
Re : Transformer une longue ligne en n lignes de taille fixe.
®om a écrit :Quelque chose comme :
echo xxxxxxyyyyyyzzzzzz | sed 's/[a-z]\{6\}/\0\n/g'
echo xxxxxxyyyyyyzzzzzz | sed 's/[a-z]\{6\}/\0\n/g'
0n0n0nJe cherche le paramètre qui reprend le motif trouvé pour lui ajouter un \n.
Chez moi, ça donne:
xxxxxx
yyyyyy
zzzzzz
(je suis au boulot sous xp dans cygwin, je réessaierai dans un vrai système)
Hors ligne
#6 Le 26/11/2008, à 15:20
- Kiwi41
Re : Transformer une longue ligne en n lignes de taille fixe.
Moi je suis sur un SunOS, ça vient peut-être de là...
Hors ligne
#7 Le 26/11/2008, à 15:21
- ®om
Re : Transformer une longue ligne en n lignes de taille fixe.
Je viens de tester sur Ubuntu LiveCD, ça fonctionne bien.
echo $SHELL
?
Hors ligne
#8 Le 26/11/2008, à 17:24
- Kiwi41
Re : Transformer une longue ligne en n lignes de taille fixe.
Mon shell est /bin/ksh mais je pense que ça vient de la version de sed installée sur SunOS 5.8
Hors ligne
#9 Le 26/11/2008, à 17:30
- Didoooouuuu
Re : Transformer une longue ligne en n lignes de taille fixe.
La solution, c'est la commande Unix, fold.
Elle coupe en ligne de longueur fixe et en option, sur la limite de mot.
#10 Le 26/11/2008, à 19:45
- ®om
Re : Transformer une longue ligne en n lignes de taille fixe.
Effectivement :
$ echo xxxxxxyyyyyyzzzzzz | fold -w6
xxxxxx
yyyyyy
zzzzzz
Hors ligne
#11 Le 26/11/2008, à 20:06
- Kiwi41
Re : Transformer une longue ligne en n lignes de taille fixe.
Merci cette commande est... magique !
Il faut que je test ça sur SunOS demain au boulot.
Edith me dit que...
Ca marche !!!!
Merci pour votre aide !
Dernière modification par Kiwi41 (Le 27/11/2008, à 09:23)
Hors ligne
#12 Le 27/11/2008, à 13:16
- nicolas66
Re : Transformer une longue ligne en n lignes de taille fixe.
Merci pour l'astuce
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne