[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS grave] Re: script pour compter 840 caractères et insérer un caractère de continuation de



Le Wednesday 20 May 2009 à 19:22:00 (+0200), Gilles MISSONNIER a écrit :
> le pb :
> comment insérer un caractère "retour à la ligne" quand on a les 2 
> conditions :
> 1- on a dépassé 70 caractères d'affilé ("blanc ou pas")
> 2- on continue jusqu'à ce que l'on recontre un "blanc"
>    (on peut considérer que le blanc rencontré devra être supprimé)
> 
> aucune des solutions suggérées ne fonctionne :
> par exemple, j'ai un fichier de 2 lignes de 200 caractères chacunes,
> je voudrais idéalement si les longueurs des mots le permettent : 
> 70
> 70
> 60
> 70
> 70
> 60
> 
> 
> et non pas
> 70
> 130
> 70
> 130

D'après ton énoncé, les seules lignes en sortie qui feront moins de 70
caracteres faisaient déjà moins de 70 caractères en entrée. Toutes les
autres feront obligatoirement 70 caractères minimum plus éventuellement
un mot (dont la longueur est indéfinie). Ce n'est donc pas cohérent avec
les exemples que tu donnes. Je crois que nos deux solutions respectent
ton énoncé. Mais ton énoncé respecte-t-il ce que tu souhaites ?

[ fcerbell@aspire ShLvl:1 Cmd:505 Ret:0 jeu mai 21 00:30:11 ]
~ $ echo "azehjg akjhzrg aekrhg ezrkhgz erzrkjhgzer zekrgezr kezrezk
zerkzer zkerz rzekr z" | wc
      1      11      81
[ fcerbell@aspire ShLvl:1 Cmd:505 Ret:0 jeu mai 21 00:30:15 ]
~ $ echo "azehjg akjhzrg aekrhg ezrkhgz erzrkjhgzer zekrgezr kezrezk zerkzer zkerz rzekr z" | sed 's/\(.\{70,70\}[^ ]*\) \(.\+\)$/\1\n\2/'
azehjg akjhzrg aekrhg ezrkhgz erzrkjhgzer zekrgezr kezrezk zerkzer zkerz
rzekr z

Les conditions de césure sont bien 1 ET 2, pas 1 OU 2 ?
En gros, ton énoncé dit que tu coupes la ligne au premier espace
rencontré au dela du 70ème caractère. 

Le cas qui se pose peut etre est si ce comportement doit etre recursif.
C'est certainement là que nos lignes ne te conviennent pas. Il me
semblait que le modificateur 'g' aurait du faire l'affaire, mais je
viens de tester et ca ne marche apparemment pas. Un autre sur la liste
aura certainement le detail qui nous manque.

Fanfan

-- 
Pour se marier, il faut un témoin, comme pour un accident ou un duel.  
                           [ Sacha Guitry ]

Attachment: signature.asc
Description: Digital signature


Reply to: