Re: Re : Re: sed ignorer une occurence
salut, > J'utilise plutôt emacs et ne connais pas bien vi autrement que pour > éditer des fichiers de config. /!\: message à caractère informatif sans volonté prosélyte une des raisons qui me font aimer vim est justement la simplicité avec laquelle tu peux interagir avec les autres commandes. j'ai fais toute une conférence là dessus (c'est en euuuhh-anglais) https://github.com/eiro/talk-acme-changed-my-life je fais des demos qui illustrent ce que je te proposais de faire. > Il me manquais deux notions : > [^.\n] non match (la négation de la correspondance > \1 backreference dans l'expression régulière, là par contre il va > falloir que je lise une bonne doc sur le sujet, G pas tout compris ! ah ben sans rentrer dans les détails (attention: le -r est important) soit une liste de tu veux transformer. disons la liste suivante: Manipulation - Au commencement, le troisième homme - Ep 1⧸6 - Documentaire sur l'affaire Clearstream [vzKpalcKfF4].webm Manipulation - Clearstream, la banque des banques - Ep 2⧸6 - Documentaire sur l'affaire Clearstream [RaDFbeO94Rg].webm Manipulation - Jean-Luc Lagardère, le scénario noir - Ep 3⧸6 - l'affaire Clearstream - Y [a7glzdg_1ng].webm Manipulation - Karachi et le trésor de guerre - Ep 5⧸6 - l'affaire Clearstream - Y [SePDLJt85bw].webm Manipulation - La république des mallettes - Ep 6⧸6 - l'affaire Clearstream - Y [QrdpPCZfA1w].webm Manipulation - Taïwan, naissance de la zone grise - Ep 4⧸6 - l'affaire Clearstream - Y [qYzEW7rZkn0].webm en la liste suivante 1_Au_commencement_le_troisième_homme.webm 2_Clearstream_la_banque_des_banques.webm 3_Jean-Luc_Lagardère_le_scénario_noir.webm 5_Karachi_et_le_trésor_de_guerre.webm 6_La_république_des_mallettes.webm 4_Taïwan_naissance_de_la_zone_grise.webm la première étape c'est de trouver la structure Manipulation - (TITRE) - Ep 1⧸(NUMERO) - (RESTE) que je veux transformer en (NUMERO)_(TITRE).webm * le titre arrive en premier (\1) et est composé de n'importe quoi (.*) * le numéro arrive en second (\2) et est composé d'un numéro * j'aurais pu écrire [0-9] * je suis une flême: dans notre cas, '.' fait bien l'affaire * tout le reste (.*), on s'en fout j'ai donc le motif /^Manipulation - (.*) - Ep 1⧸(.) - .*/ que je veux transformer en \2_\1.webm ensuite je repasse derrière pour virer les caractères étranges: s/[ ,]+/_/g donc si je fais sed -r ' # afficher le nom actuel p # modifier la structure s!^Manipulation - (.*) - Ep (.).*!\2_\1.webm! # virer les caractères pourris s/[ ,]+/_/g ' <<% … J'ai une nouvelle liste avec pour chaque épisode: * nouveau nom * ancien nom si je demande à xargs de prendre ces noms 2 par 2 pour les filer à mv, je fais du renommage de masse: { sed -r ' # afficher le nom actuel p # modifier la structure s!^Manipulation - (.*) - Ep (.).*!\2_\1.webm! # virer les caractères pourris s/[ ,]+/_/g ' | xargs -d'\n' -n2 mv <<% … et tout ça quand tu le fais depuis vim c'est très interactif parceque chaque étape est du texte que tu peux modifier. elle est pas belle la vie ? à nouveau: si je suis allé trop vite, hésite pas à demander :) cordialement, marc
Re: Re : Re: sed ignorer une occurence
Bonjour, J'ai fait un peu de révision sur les regex hier, justement. Les backreferences servent à exprimer un occurrence de texte identique à une autre occurence précédente, capturée par des parenthèses. Par exemple, dans un texte contenant des chaînes délimitées soit par des doubles quotes ou des simples quotes (le HTML apr exemple) alors tu peux capturer le début d'une chaîne avec ("|') puis trouver la fin de cette chaîne avec \1. En supposant que l'ouverture de la chaîne soit la 1ere paire de parenthèses de ta regex. Dans ton cas tu veux que ta regex ne corresponde PAS à un masque suivi d'un point puis un retour à la ligne (de ce que j'ai compris). Ce point et retour a la ligne le doivent pas être dans la chaîne matchée. Il te faut donc un look around. Tu peux le faire avec (?!\.\n) . Essaye et dis si ça fonctionne. Tu as aussi des outils sympas pour tester tes regexes, https://regex101.com/ Et une excellente documentation sur les regexes, celle qui m'a permis de tout en apprendre il y a bien longtemps. Pour moi c'est une référence dans le domaine. https://www.regular-expressions.info/ Jette un oeil aux lookarounds, c'est abondament expliqué. Le sam. 3 juin 2023 à 13:46, benoit a écrit : > Le vendredi 2 juin 2023 à 18:05, Marc Chantreux a écrit : > > > > salut, > > > > > % sed -rz '{s/-\n//g;s/\n//g}' format.txt > > > > > > <<\% sed -rz 's/-\n//g; s/([^.\n])\n/\1/g' | tr -s ' ' | fmt -w72 > > > > Je suis pas sur d'avoir compris le pb. > > > > Je voudrais reformater du texte en colonne, > > qui a été just- > > ifié avec des retours à la ligne (\n) et > > est - de coupure de mot. > > > > % > > > > Si la commande correspond bien à ton besoin, tu peux directement > > l'utiliser dans vi grace à un range. > > > > J'utilise plutôt emacs et ne connais pas bien vi autrement que pour éditer > des fichiers de config. > > > > si tu as fais une selection visuelle, tappes > > > > !sed -rz 's/-\n//g; s/([^.\n])\n/\1/g' | tr -s ' ' | fmt -w72 > > > > les prochains usages de ! rappellent le dernier filtre, tu n'auras > > plus qu'a taper !! au lieu de ! et rappeler la commande. > > > > Évidement ça marche avec tous les ranges :) > > > > astuce: mettre le filtre dans un fichier à part pour en faciliter la > > maintenance: > > > > :sp monfiltre > > :!chmod a+x % > > > > et ensuite tu peux écrire ton filtre en espaçant un peu et en commentant > > > > #!/bin/sh > > # note1: je ne vire le retour à la ligne que si il est précédé > > # d'autre chose qu'un espace > > d'autre chose qu'un point "." tu veux dire ? > Oui c'est bien ma demande virer tous les retour à la ligne et > ignorer([^.\n]) ceux qui sont précédés d'un point. > > Il me manquais deux notions : > [^.\n] non match (la négation de la correspondance) > \1 backreference dans l'expression régulière, là par contre il va falloir > que je lise une bonne doc sur le sujet, G pas tout compris ! :-) > > > sed -rz ' > > s/-\n//g > > s/([^.\n])\n/\1/g # cf. note1 > > ' | > > tr -s ' ' | > > fmt -w72 > > > > et finalement > > > > filtrer avec !./monfiltre > > > > > > je fais concis pour aller vite. n'hésite pas à me demander de plus > > amples explications si cette piste de plait. > > > > Un tout grand merci, je vais d’abord me documenter sur les backreferences > ! > > Avec gratitude, > Benoît > >
Re : Re: sed ignorer une occurence
Le vendredi 2 juin 2023 à 18:05, Marc Chantreux a écrit : > salut, > > > % sed -rz '{s/-\n//g;s/\n//g}' format.txt > > > <<\% sed -rz 's/-\n//g; s/([^.\n])\n/\1/g' | tr -s ' ' | fmt -w72 > > Je suis pas sur d'avoir compris le pb. > > Je voudrais reformater du texte en colonne, > qui a été just- > ifié avec des retours à la ligne (\n) et > est - de coupure de mot. > > % > > Si la commande correspond bien à ton besoin, tu peux directement > l'utiliser dans vi grace à un range. > J'utilise plutôt emacs et ne connais pas bien vi autrement que pour éditer des fichiers de config. > si tu as fais une selection visuelle, tappes > > !sed -rz 's/-\n//g; s/([^.\n])\n/\1/g' | tr -s ' ' | fmt -w72 > > les prochains usages de ! rappellent le dernier filtre, tu n'auras > plus qu'a taper !! au lieu de ! et rappeler la commande. > > Évidement ça marche avec tous les ranges :) > > astuce: mettre le filtre dans un fichier à part pour en faciliter la > maintenance: > > :sp monfiltre > :!chmod a+x % > > et ensuite tu peux écrire ton filtre en espaçant un peu et en commentant > > #!/bin/sh > # note1: je ne vire le retour à la ligne que si il est précédé > # d'autre chose qu'un espace d'autre chose qu'un point "." tu veux dire ? Oui c'est bien ma demande virer tous les retour à la ligne et ignorer([^.\n]) ceux qui sont précédés d'un point. Il me manquais deux notions : [^.\n] non match (la négation de la correspondance) \1 backreference dans l'expression régulière, là par contre il va falloir que je lise une bonne doc sur le sujet, G pas tout compris ! :-) > sed -rz ' > s/-\n//g > s/([^.\n])\n/\1/g # cf. note1 > ' | > tr -s ' ' | > fmt -w72 > > et finalement > > filtrer avec !./monfiltre > > > je fais concis pour aller vite. n'hésite pas à me demander de plus > amples explications si cette piste de plait. > Un tout grand merci, je vais d’abord me documenter sur les backreferences ! Avec gratitude, Benoît
Re: sed ignorer une occurence
salut, Le Thu, Jun 01, 2023 at 10:46:00AM +, benoit a écrit : > Je voudrais reformater du texte en colonne, qui a été justifié avec des > retours > à la ligne (\n) et des "-" de coupure de mot > ex: > Je voudrais reformater du texte en colonne, qui a été just- «--- > ifié avec des retours à la ligne (\n) et est - de coupure de > mot. > > % sed -rz '{s/-\n//g;s/\n//g}' format.txt <<\% sed -rz 's/-\n//g; s/([^.\n])\n/\1/g' | tr -s ' ' | fmt -w72 Je suis pas sur d'avoir compris le pb. Je voudrais reformater du texte en colonne, qui a étéjust- ifié avec des retours à la ligne (\n)et est - de coupure de mot. % Si la commande correspond bien à ton besoin, tu peux directement l'utiliser dans vi grace à un range. si tu as fais une selection visuelle, tappes !sed -rz 's/-\n//g; s/([^.\n])\n/\1/g' | tr -s ' ' | fmt -w72 les prochains usages de ! rappellent le dernier filtre, tu n'auras plus qu'a taper !! au lieu de ! et rappeler la commande. Évidement ça marche avec tous les ranges :) astuce: mettre le filtre dans un fichier à part pour en faciliter la maintenance: :sp monfiltre :!chmod a+x % et ensuite tu peux écrire ton filtre en espaçant un peu et en commentant #!/bin/sh # note1: je ne vire le retour à la ligne que si il est précédé #d'autre chose qu'un espace sed -rz ' s/-\n//g s/([^.\n])\n/\1/g # cf. note1 ' | tr -s ' ' | fmt -w72 et finalement filtrer avec !./monfiltre je fais concis pour aller vite. n'hésite pas à me demander de plus amples explications si cette piste de plait. cordialement, marc
Re: sed ignorer une occurence
Hello, 1 juin 2023, 12:46 de benoit...@protonmail.ch: > % > sed -rz '{s/-\n//g;s/\n//g}' format.txt > > Mais je ne suis pas satisfait du résultat parce que je voudrais ignorer les > points (.\n) suivit d'un retour à la ligne. > sed ':a;N;$!ba;s/-\n//g' format.txt l0f4r0
Re: sed ignorer une occurence
Le 1 juin 2023 benoit a écrit : > A certains endroits ça mets deux espaces, je vais chercher pourquoi... > Mais en attendant de comprendre, je retourne au début et repasse une fois > pour les virer et c'est bon ! ;-) tu dois avoir des espaces en fin de ligne qui trainent, donc peut-être, pour ne pas supprimer des double espaces qui seraient valides : (defun ConvertRet () "Convertit un retour à la ligne." (interactive) (let ( (p1 (region-beginning)) (p2 (region-end))) (save-restriction (narrow-to-region p1 p2) (goto-char (point-min)) (while (re-search-forward "-\\\n" nil t) (replace-match "" nil t)) (goto-char (point-min)) (while (re-search-forward " \\\n" nil t) (replace-match " " nil t)) (goto-char (point-min)) (while (re-search-forward "\\([^.]\\)\\\n" nil t) (replace-match (concat (match-string 1) " ") nil t)) ))) (defun indentBuffer () "Convertit un texte jutifié avec des retours à la ligne." (interactive) (mark-whole-buffer) (ConvertRet))
Re : Re: sed ignorer une occurence
Le jeudi 1 juin 2023 à 20:54, Michel Verdier a écrit : > > Autant pour moi, faut toujours regarder les Messages :) > Là ça devrait marcher pour de vrai. > > (defun ConvertRet () > "Convertit un retour à la ligne." > (interactive) > (let ( > (p1 (region-beginning)) > (p2 (region-end))) > (save-restriction > (narrow-to-region p1 p2) > (goto-char (point-min)) > (while (re-search-forward "-\\\n" nil t) > (replace-match "" nil t)) > (goto-char (point-min)) > (while (re-search-forward "\\([^.]\\)\\\n" nil t) > (replace-match (concat (match-string 1) " ") nil t)) > ))) > Un tout grand merci... :-) A certains endroits ça mets deux espaces, je vais chercher pourquoi... Mais en attendant de comprendre, je retourne au début et repasse une fois pour les virer et c'est bon ! ;-) (defun ConvertRet () "Convertit les retours à la ligne." (interactive) (let ( (p1 (region-beginning)) (p2 (region-end))) (save-restriction (narrow-to-region p1 p2) (goto-char (point-min)) (while (re-search-forward "-\\\n" nil t) (replace-match "" nil t)) (goto-char (point-min)) (while (re-search-forward "\\([^.]\\)\\\n" nil t) (replace-match (concat (match-string 1) " ") nil t)) (goto-char (point-min)) (while (re-search-forward " " nil t) (replace-match " " nil t)) ))) Avec gratitude, -- Benoît
Re: sed ignorer une occurence
Le 1 juin 2023 benoit a écrit : > Ne fonctionne pas chez moi Autant pour moi, faut toujours regarder les Messages :) Là ça devrait marcher pour de vrai. (defun ConvertRet () "Convertit un retour à la ligne." (interactive) (let ( (p1 (region-beginning)) (p2 (region-end))) (save-restriction (narrow-to-region p1 p2) (goto-char (point-min)) (while (re-search-forward "-\\\n" nil t) (replace-match "" nil t)) (goto-char (point-min)) (while (re-search-forward "\\([^.]\\)\\\n" nil t) (replace-match (concat (match-string 1) " ") nil t)) ))) (defun indentBuffer () "Convertit un texte jutifié avec des retours à la ligne." (interactive) (mark-whole-buffer) (ConvertRet))
Re : Re: sed ignorer une occurence
Le jeudi 1 juin 2023 à 16:01, Michel Verdier a écrit : > Le 1 juin 2023 benoit a écrit : > > > Il me reste juste l'exception pour le cas ou je veux laisser les "\n" des > > lignes qui se terminent par un "." ? > > > Ah oui j'avais zappé ça. Voilà mon texte de test : > > Je voudrais reformater du texte en colonne, qui a été just- > ifié avec des retours à la ligne (\n) et est - de coupure de > mot. > Mais pas ce dernier. > > Et l'ajout de la ligne qui va bien : > > (defun ConvertRet () > "Convertit un retour à la ligne." > (interactive) > (let ( > (p1 (region-beginning)) > (p2 (region-end))) > (save-restriction > (narrow-to-region p1 p2) > (goto-char (point-min)) > (while (re-search-forward "-\\\n" nil t) > (replace-match "" nil t)) > (goto-char (point-min)) > (while (re-search-forward "\\\n" nil t) > (cond (not match ".\\\n") > (replace-match " " nil t))) > ))) > > (defun indentBuffer () > "Convertit un texte jutifié avec des retours à la ligne." > (interactive) > (mark-whole-buffer) > (ConvertRet)) (cond (not match ".\\\n") Ne fonctionne pas chez moi Est ce que ".\\\n" ne veut pas dire n'importe que caractère (.) suivit de \n ? Du coup j'ai essayé deux formes : "\\.\\\n" "[.]\\\n" Mais il désélectionne la première ligne et rien ne se passe J'ai joint un fichier formaté sur 72 caractères comme exemple Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec mollis sagittis libero at semper. In lacinia in lorem sit amet semper. Nulla pellentesque venenatis dolor, et dapibus dolor feugiat ut. Aenean purus nunc, elementum vel lectus sed, blandit laoreet ipsum. Aenean in augue lobortis leo accumsan maximus. Maecenas ante est, ornare vel ullamcorper sodales, ultrices sit amet augue. Donec ut augue eget odio tempus condimentum sit amet eu tortor. Aliquam tincidunt lacinia nulla eu pretium. Nunc eu velit velit. Mauris a volutpat odio, vitae molestie tellus. Proin fermentum tempus tempor. Maecenas pellentesque consequat quam, in fringilla lectus mollis nec. Ut tristique magna hendrerit, gravida metus id, dapibus dui. Proin sed consequat risus. Aenean eu placerat leo. Suspendisse pulvinar augue porttitor risus tempus tristique. Donec mauris nulla, suscipit non arcu non, ullamcorper feugiat dui. Vestibulum at orci cursus, elementum tellus ut, accumsan ipsum. Nam luctus neque quis arcu posuere, vulputate volutpat magna efficitur. Maecenas ut leo quis est molestie faucibus. Nam commodo est ac elit molestie hendrerit. Aliquam ut aliquet mauris. Maecenas magna magna, volutpat cursus ligula vel, tristique laoreet ante. Maecenas malesuada ante fringilla, sagittis massa fringilla, rutrum ligula. Nullam gravida dolor ut dolor faucibus, ac posuere mauris lobortis. Fusce tempor sodales enim, et lobortis arcu mattis vehicula. Ut posuere tristique diam id lobortis. Integer porta neque sit amet erat aliquet consectetur sed quis mi. Maecenas ut maximus diam. Sed rhoncus lorem vel eros dictum, sit amet vehicula dui mollis. Mauris euismod felis hendrerit, tempus sapien quis, commodo eros. Vestibulum id auctor libero, non accumsan enim. Nulla facilisi. Mauris vel lacinia sem. Aliquam nec molestie enim. Cras ac justo eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Fusce eget felis congue, vulputate est eget, bibendum sapien. Donec scelerisque erat vitae massa molestie sodales. Ut lorem quam, varius ac purus in, cursus pulvinar ante. Phasellus et mi sed elit molestie accumsan. Ut venenatis suscipit urna quis commodo. Aliquam suscipit aliquet magna, vitae condimentum ipsum aliquet in. Pellentesque condimentum est eu lorem elementum luctus. Nunc venenatis justo sit amet dui rutrum scelerisque. Duis ut pellentesque ante, ornare vulputate dui. Etiam congue sed ante sit amet euismod. Maecenas rutrum laoreet sapien ut tincidunt. Maecenas commodo eros sit amet posuere varius.
Re: sed ignorer une occurence
Le 1 juin 2023 benoit a écrit : > Il me reste juste l'exception pour le cas ou je veux laisser les "\n" des > lignes qui se terminent par un "." ? Ah oui j'avais zappé ça. Voilà mon texte de test : Je voudrais reformater du texte en colonne, qui a été just- ifié avec des retours à la ligne (\n) et est - de coupure de mot. Mais pas ce dernier. Et l'ajout de la ligne qui va bien : (defun ConvertRet () "Convertit un retour à la ligne." (interactive) (let ( (p1 (region-beginning)) (p2 (region-end))) (save-restriction (narrow-to-region p1 p2) (goto-char (point-min)) (while (re-search-forward "-\\\n" nil t) (replace-match "" nil t)) (goto-char (point-min)) (while (re-search-forward "\\\n" nil t) (cond (not match ".\\\n") (replace-match " " nil t))) ))) (defun indentBuffer () "Convertit un texte jutifié avec des retours à la ligne." (interactive) (mark-whole-buffer) (ConvertRet))
Re : Re: sed ignorer une occurence
Le jeudi 1 juin 2023 à 15:21, Michel Verdier a écrit : > Tu y étais presque :) > > (defun ConvertRet () > "Convertit un retour à la ligne." > (interactive) > (let ( > (p1 (region-beginning)) > (p2 (region-end))) > (save-restriction > (narrow-to-region p1 p2) > (goto-char (point-min)) > (while (re-search-forward "-\\\n" nil t) > (replace-match "" nil t)) > (goto-char (point-min)) > > (while (re-search-forward "\\\n" nil t) > (replace-match " " nil t)) > ))) > > (defun indentBuffer () > "Convertit un texte jutifié avec des retours à la ligne." > (interactive) > (mark-whole-buffer) > (ConvertRet)) Un tout grand merci ! :-) Il me reste juste l'exception pour le cas ou je veux laisser les "\n" des lignes qui se terminent par un "." ? C'est sur ce site que je me suis initié à faire mes macros pour emacs, du coup un petit UP dans les moteurs de recherche ! http://xahlee.info/emacs/emacs
Re: sed ignorer une occurence
Le 1 juin 2023 benoit a écrit : > Je m'y suis essayé, j'ai abandonné, mais avec un petit coupe de pouce... ;-) Tu y étais presque :) (defun ConvertRet () "Convertit un retour à la ligne." (interactive) (let ( (p1 (region-beginning)) (p2 (region-end))) (save-restriction (narrow-to-region p1 p2) (goto-char (point-min)) (while (re-search-forward "-\\\n" nil t) (replace-match "" nil t)) (goto-char (point-min)) (while (re-search-forward "\\\n" nil t) (replace-match " " nil t)) ))) (defun indentBuffer () "Convertit un texte jutifié avec des retours à la ligne." (interactive) (mark-whole-buffer) (ConvertRet))
Re : Re: sed ignorer une occurence
Bonjour, Le jeudi 1 juin 2023 à 12:56, Basile Starynkevitch a écrit : > Une possibilité est l'utilisation de l'utilitaire > https://man7.org/linux/man-pages/man1/fmt.1.html A je ne connais pas je vais aller voir > Une autre possibilité est de le faire sous GNU emacs > https://www.gnu.org/software/emacs/ > > (ave un peu d'huile de coude, c'est automatisable) Je m'y suis essayé, j'ai abandonné, mais avec un petit coupe de pouce... ;-) (defun ConvertRet () "Convertis un retour à la ligne" (interactive) (let ( (p1 (region-beginning)) (p2 (region-end))) (save-restriction (narrow-to-region p1 p2) (goto-char (point-min)) (while (re-search-forward "-\n" nil t) (replace-match "" nil t)) (goto-char (point-min)) (while (re-search-forward "\n" nil t) (replace-match " " nil t)) ))) (defun indentBuffer () "Converti un text jutifié avec des retours à la lign." (interactive) (mark-whole-buffer) (ConvertRet (region-beginning) (region-end)))
Re: sed ignorer une occurence
On 6/1/23 12:46, benoit wrote: Bonjour Je voudrais reformater du texte en colonne, qui a été justifié avec des retours à la ligne (\n) et des "-" de coupure de mot ex: Je voudrais reformater du texte en colonne, qui a été just- «--- ifié avec des retours à la ligne (\n) et est - de coupure de mot. % sed -rz '{s/-\n//g;s/\n//g}' format.txt Mais je ne suis pas satisfait du résultat parce que je voudrais ignorer les points (.\n) suivit d'un retour à la ligne. Merci d'avance Une possibilité est l'utilisation de l'utilitaire https://man7.org/linux/man-pages/man1/fmt.1.html Une autre possibilité est de le faire sous GNU emacs https://www.gnu.org/software/emacs/ (ave un peu d'huile de coude, c'est automatisable) Une autre possibilité est de coder avec GNU bison et/ou GNU flex. La difficulté est de définir ce qu'est un mot (on peut imaginer un texte encodé en UTF-8 avec un mélange de mots en hébreu -ou chinois ou serbe ou arabe ou simplement en anglais- et en français, et alors le problème est bien plus difficile). Il faut formaliser ce qu'est le texte d'entrée, et le jeu de caractères utilisé (UTF-8) et le language humain utilisé. Même pour du texte en français (ou en anglais), les règles de césure sont complexes, je ne ne les connais pas toutes (la consultation d'une grammaire ou d'un manuel typographique s'impose). Par exemple, je crois me souvenir qu'un nombre (en français) comme 2 145 906 (la population de Paris en 2020) ne doit pas être césuré! Les logiciels de typographie libres (par exemple https://latex.org/ ou Lout en https://ftp.gnu.org/gnu/lout.README ...) sont compliqué pour gérer la césure correctement! Librement -- Basile Starynkevitch (only mine opinions / les opinions sont miennes uniquement) 92340 Bourg-la-Reine, France web page: starynkevitch.net/Basile/
sed ignorer une occurence
Bonjour Je voudrais reformater du texte en colonne, qui a été justifié avec des retours à la ligne (\n) et des "-" de coupure de mot ex: Je voudrais reformater du texte en colonne, qui a été just- «--- ifié avec des retours à la ligne (\n) et est - de coupure de mot. % sed -rz '{s/-\n//g;s/\n//g}' format.txt Mais je ne suis pas satisfait du résultat parce que je voudrais ignorer les points (.\n) suivit d'un retour à la ligne. Merci d'avance -- Benoît Envoyé avec la messagerie sécurisée [Proton Mail.](https://proton.me/)