[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



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: