#1 Le 25/07/2019, à 09: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, à 08:57)
Ubuntu-Unity 24.04 Alienware X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42
Hors ligne
#2 Le 25/07/2019, à 09: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 25/07/2019, à 23: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 24.04 Alienware X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42
Hors ligne
#4 Le 26/07/2019, à 05: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