Fanfan a écrit, mardi 19 mai 2009, à 13:25 : > Le Tuesday 19 May 2009 à 11:51:52 (+0200), Jacques L'helgoualc'h a écrit : > > > 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" > > > > sed -re 's/.{42,70}[[:blank:]]/&\\\n/g' > > Tu fais ta césure avant le 70 eme caractère, ce qui ne correspond pas à > la condition 1.
Oui, je réponds un peu à côté : je suppose qu'on veut - limiter à 70 caractères (ou 71, blanc compris (les cartes perforées, c'était 72 + 8 colonnes de numérotage :)) ; - en coupant de préférence sur les blancs... > Il me semblait que le quantificateur {} était avide et allait avaler > tous les caractères jusqu'à 70, même si on trouve un blanc entre 42 et > 70. Me gourre-je ? Un peu, il reculera au dernier blanc dans la fourchette : ~ $ echo 012345678901234567890123456789012345678942 \ 0123456789012345678901234567890123456789 | \ sed -re 's/.{42,70}[[:blank:]]/&\\\n/g' 012345678901234567890123456789012345678942 \ 0123456789012345678901234567890123456789 > > va avoir une certaine élasticité ; pour ne pas te casser la tête avec un > > unique script sed compliqué, tu peux piper dans un second rigide pour > > casser les lignes trop longues que laisse passer le premier : > > sed -re 's/.{42,70}[[:blank:]]/&\\\n/g' | \ > > sed -re 's/.{70}/&\\\n/g' > > En fait, la, tu vas couper à 70, même au milieu d'un mot. Comme dans la demande initiale. > Au final, toutes tes lignes feront moins de 71 caractères, avec une césure en > plein mot. Non ? Oui, si besoin. -- Jacques L'helgoualc'h -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org