Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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.

®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'
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.

Kiwi41 a écrit :
®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'
0n0n0n

Je 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 smile


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne