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 25/07/2019, à 10:09

L'Africain

(Résolu) Ajouter balise \s devant ligne en birman

Bonjour,
Je suis en train de travailler sur un texte en birman, et je voudrais insérer une balise \p entre une ligne qui commence par \s et la ligne qui suit uniquement si elle commence par \v
Voici un exemple de texte:

\s မျက်မမြင်နှစ်ဦးကိုမြင်စေတော်မူခြင်း
\v 27 \vp ၂၇။\vp* ယေဇူးသ

Devrait devenir:

\s မျက်မမြင်နှစ်ဦးကိုမြင်စေတော်မူခြင်း
\p
\v 27 \vp ၂၇။\vp* ယေဇူးသ

J'ai essayé avec ça:

sed -ri ':a;N;$!ba;s/(\\s*.*)\n(\\v)/\1\n\\p\n\2/g'

Mais ça ne fonctionne pas.
Merci de votre aide.

Dernière modification par L'Africain (Le 26/07/2019, à 09:57)


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

Hors ligne

#2 Le 25/07/2019, à 10:51

pingouinux

Re : (Résolu) Ajouter balise \s devant ligne en birman

Bonjour,
Le birman n'a rien à voir dans l'histoire.
Le problème vient du fait que l'expression dans le sed récupère tout depuis le premier \s jusqu'au dernier \v.

sed -r ':a;N;$!ba;s/(\\s[^\n]*)\n(\\v)/\1\n\\p\n\2/g'  fichier

Hors ligne

#3 Le 26/07/2019, à 00:20

L'Africain

Re : (Résolu) Ajouter balise \s devant ligne en birman

Merci pinguinux, j'aimerais comprendre juste pourquoi les ^\n sont entre crochet et ce qu'ils signifient?
Sinon ça fonctionne, merci.


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

Hors ligne

#4 Le 26/07/2019, à 06:54

pingouinux

Re : (Résolu) Ajouter balise \s devant ligne en birman

j'aimerais comprendre juste pourquoi les ^\n sont entre crochet et ce qu'ils signifient

[^\n]* : zéro ou un nombre quelconque de caractères différents de \n

Les crochets sont nécessaires s'il y a plusieurs caractères à prendre en compte :
[AB]* : zéro ou un nombre quelconque de caractères A ou B

et/ou si on veut mettre la négation ^ :
[^AB]* : zéro ou un nombre quelconque de caractères différents de A ou B

sinon on peut s'en passer :
[A]* : zéro ou un nombre quelconque de caractères A
A* : zéro ou un nombre quelconque de caractères A

Hors ligne