Re: [HS grave] Re: script pour compter 840 caractères et insérer un caractère de continuation de
Gilles MISSONNIER a écrit, mercredi 20 mai 2009, à 19:22 :
> bonjour,
> et c'est quasi-vendredi :+)
:)
> 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é)
En fait, ça me paraît un peu bancal : je vois plutôt un maximal strict,
et une préférence pour les blancs en raccourcissant un peu...
> 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
Bon, si tu veux équilibrer, le plus simple est de faire un peu
d'arithmétique, donc Sed n'est peut-être pas le plus indiqué.
> François :
> sed -e '1,$s/\(^.\{70\}[^ ]*\) /\1\n/g' fichier
>
> Jacques : (et puis c'est quoi ce "\" qui déboule dans le résultat ?)
C'était la demande initiale, le caractère de continuation à insérer.
> sed -re 's/.{42,70}[[:blank:]]/&\\\n/g' fichier |
> sed -re 's/.{70}/&\\\n/g'
>
> Fanfan :
> sed 's/\(.\{70,70\}[^ ]*\) \(.\+\)$/\1\n\2/' fichier
>
> hé bé ça le fait pô.
--
Jacques L'helgoualc'h
Reply to: