Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/01/2024, à 19:44

L'Africain

Intégrer des notes au bon endroit dans le texte

Bonjour,
Toujours et encore mes problèmes de notes à mettre à la bonne place. Je prépare un texte pour wikisource, il se présente comme ceci:

CHAPITRE II



1. Le ciel et la terre furent ainsi achevés, avec toute leur parure.

2. Dieu acheva, le sixième jour, ses œuvres, les œuvres qu'il avait faites; et il se reposa (1) le septième jour de ses travaux, de tous les travaux qu'il avait accomplis.

3. Et Dieu bénit le septième jour, et le sanctifia, parce que ce jour-là il s'était reposé de tous ses travaux, des travaux qu'il avait entrepris de faire.

4. Voilà le livre de la naissance du ciel et de la terre, telle qu'elle s'accomplit, le jour où le Seigneur Dieu acheva de créer le ciel et la terre,

5. Et toute la verdure des champs avant qu'elle naquit de la terre, et toute plante herbacée avant qu'elle eût germé; car Dieu n'arrosait point encore la terre, comme aussi il n'y avait point d'homme pour la travailler.

6. Seulement une fontaine jaillissait du sol, et abreuvait toute la face de la terre.

7. Pour faire l'homme, Dieu pétrit une masse d'argile extraite de la terre, et sur sa face, il souffla un souffle de vie, et l'homme devint (2) une âme vivante.

8. Or, Dieu avait créé un paradis dans Éden, à l'orient; et il y plaça l'homme qu'il venait de former.

9. Dieu aussi avait fait germer de la terre tout arbre

à l'aspect magnifique et aux fruits délicieux, et, au mi



(1) Voyez saint Jean, v, 17. Dieu opère et ne crée plus.



(2) 1 Cor., xv, 45.

Comme vous le voyez il y a un appel de note dans le texte du type (1) et la note en bas de la page qui commence par (1).
Pour réussir à mettre la note au bon endroit dans le texte, j'ai fait ce script:

sed -ri 's/^(\([0-9]*.*)$/%\1ùùù/g' *txt
sed -ri ':a;N;$!ba;s/\n/@/g' *.txt
sed -ri 's/(\(1\))(.*)%(\(1\)[^ù].*)ùùù/<ref>\3<\/ref>\2/g' *txt
sed -ri 's/(\(2\))(.*)%(\(2\)[^ù].*)ùùù/<ref>\3<\/ref>\2/g' *txt
sed -ri 's/(\(3\))(.*)%(\(3\)[^ù].*)ùùù/<ref>\3<\/ref>\2/g' *txt

sed -ri 's/@/\n/' *txt

En gros je marque le début et la fin de la note, je supprime les sauts de ligne en y mettant une marque, puis je déplace les notes au bon endroit, et enfin je remet tous les sauts de lignes.
Sauf que ça marche, pas. sed ne me fait le travail que sur la première note du texte et pas celles qui suivent.

Merci de votre aide.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#2 Le 12/01/2024, à 15:07

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

Salut,

ça te va ça ?

sed -ri 's/^(\([0-9]*.*)$/%\1ùùù/g' *.txt
sed -ri ':a;N;$!ba;s/\n/@/g' *.txt
sed -ri "s/(.*)\(1\)(.*)%\(1\)([^ù]*)ùùù(.*)/\1<ref>(1)\3<\/ref>\2\4/" *.txt
sed -ri "s/(.*)\(2\)(.*)%\(2\)([^ù]*)ùùù(.*)/\1<ref>(2)\3<\/ref>\2\4/" *.txt
sed -ri 's/@/\n/g' *.txt

CHAPITRE II



1. Le ciel et la terre furent ainsi achevés, avec toute leur parure.

2. Dieu acheva, le sixième jour, ses œuvres, les œuvres qu'il avait faites; et il se reposa <ref>(1) Voyez saint Jean, v, 17. Dieu opère et ne crée plus.</ref> le septième jour de ses travaux, de tous les travaux qu'il avait accomplis.

3. Et Dieu bénit le septième jour, et le sanctifia, parce que ce jour-là il s'était reposé de tous ses travaux, des travaux qu'il avait entrepris de faire.

4. Voilà le livre de la naissance du ciel et de la terre, telle qu'elle s'accomplit, le jour où le Seigneur Dieu acheva de créer le ciel et la terre,

5. Et toute la verdure des champs avant qu'elle naquit de la terre, et toute plante herbacée avant qu'elle eût germé; car Dieu n'arrosait point encore la terre, comme aussi il n'y avait point d'homme pour la travailler.

6. Seulement une fontaine jaillissait du sol, et abreuvait toute la face de la terre.

7. Pour faire l'homme, Dieu pétrit une masse d'argile extraite de la terre, et sur sa face, il souffla un souffle de vie, et l'homme devint <ref>(2) 1 Cor., xv, 45.</ref> une âme vivante.

8. Or, Dieu avait créé un paradis dans Éden, à l'orient; et il y plaça l'homme qu'il venait de former.

9. Dieu aussi avait fait germer de la terre tout arbre

à l'aspect magnifique et aux fruits délicieux, et, au mi

PS : Il est toujours bon de montrer ce que tu veux...

Dernière modification par Hizoka (Le 12/01/2024, à 15:28)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#3 Le 13/01/2024, à 22:22

L'Africain

Re : Intégrer des notes au bon endroit dans le texte

Merci Hizoka,
Le résultat que tu obtiens est bien ce qui est attendu, mais sans le chiffre qui n'est plus nécessaire. Cependant chez moi ça ne fonctionne pas, les notes restent là où elles sont.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#4 Le 14/01/2024, à 19:38

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

Si tu as pas besoin du nombre :

sed -ri "s/(.*)\(1\)(.*)%\(1\) ([^ù]*)ùùù(.*)/\1<ref>\3<\/ref>\2\4/" *.txt
sed -ri "s/(.*)\(2\)(.*)%\(2\) ([^ù]*)ùùù(.*)/\1<ref>\3<\/ref>\2\4/" *.txt

Par contre, je viens de retester, chez moi, ça fonctionne.

sed --version 
sed (GNU sed) 4.8

bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)

Tu testes dans un terminal ou dans un script ?
Perso, les 2 fonctionnes.
Tu as un messages d'erreur ?
À partir de quelle commande n'as tu pas le résultat escompté ?


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 14/01/2024, à 22:48

L'Africain

Re : Intégrer des notes au bon endroit dans le texte

Oui c'est vraiment très surprenant, si j'exécute les comandes sur le morceau de fichier ça fonctionne aussi chez moi mais si je l'exécute sur tout le fichier qui est très gros non. D'ailleurs en cherchant un peu, j'avais déjà fait un script du même type sur un autre fichier et ça fonctionne sur cet autre fichier. Il y a peut-être donc quelque chose dans le fichier qui empêche la bonne exécution du script?


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#6 Le 15/01/2024, à 09:57

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

Peux tu partager ton fichier ?

Ca veut dire qu'il y a sûrement du texte qui complique les choses, y a t il des / dedans ?


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 15/01/2024, à 12:56

L'Africain

Re : Intégrer des notes au bon endroit dans le texte

Ok voici le lien. Je n'ai pas trouvé de / dans le texte. Il y en a 2 autres en plus.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#8 Le 15/01/2024, à 15:55

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

Le truc c'est que tu as 300 fois (1)...

On est très loin de ton exemple...

sed va aller jusqu'à la dernière occurrence (1), si tu regardes, il semble bien faire ce qu'il faut à la fin...

et tu as plus de (1) que de %(1)...

Donc même faire une boucle parait compliqué...
Il faut plus que du sed...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#9 Le 15/01/2024, à 15:57

L'Africain

Re : Intégrer des notes au bon endroit dans le texte

Ah ok, le fichier est donc trop gros. C'est vrai qu'il y a plus de (1) parce que l'OCR n'est pas toujours juste.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#10 Le 15/01/2024, à 16:21

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

C'est pas qu'il est trop gros, c'est qu'il n'est pas adapté vu que les nombres de ses références repartent à 1 à chaque "page".


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#11 Le 15/01/2024, à 16:22

L'Africain

Re : Intégrer des notes au bon endroit dans le texte

Sed ne sait pas gérer de multiples références identiques?


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#12 Le 15/01/2024, à 16:26

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

pas comme ça...

je m'étais dit qu'y avait peut être moyen de faire une boucle crado pour qu'il les traite 1 à 1 mais semble en rester quand même à la fin...

Sûrement dû au fait que ce n'est pas assez propre.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#13 Le 15/01/2024, à 16:27

L'Africain

Re : Intégrer des notes au bon endroit dans le texte

Ok donc je vais de voir apprendre python wink ou alors couper le fichier en plusieurs morceau.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#14 Le 15/01/2024, à 18:46

Hizoka

Re : Intégrer des notes au bon endroit dans le texte

Apprendre le python est une bonne idée wink
C'est sympa, pas trop compliqué et ça permet énormément de choses.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne