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 14/05/2017, à 21:13

L'Africain

(résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Bonjour,
Je cherche un moyen avec sed ou autre à encadrer du texte, dans de multiples fichiers txt, par les balises \f + \f*.
Ce texte commence toujour par la balise \v(chiffre) exemple \v 1 ou \v 34. Je donne un exemple du texte original:

\v 1 Muntu ya ke zitisa Nzambi, kansi ya bambeni mingi ke bangika, ke tula luzingu na yandi na maboko ya Nzambi. Yo yina, sambu na v. 7, bo yindulaka nde: mambu yai ke kwendila ti mambu ya David.

Le résultat devrait être:

\v 1 \f + Muntu ya ke zitisa Nzambi, kansi ya bambeni mingi ke bangika, ke tula luzingu na yandi na maboko ya Nzambi. Yo yina, sambu na v. 7, bo yindulaka nde: mambu yai ke kwendila ti mambu ya David.\f*

Merci d'avance pour votre aide

Dernière modification par L'Africain (Le 15/05/2017, à 11:39)


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

Hors ligne

#2 Le 14/05/2017, à 22:31

pingouinux

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Bonsoir,
Essaye

sed -r 's/(\\v [0-9]+ )(.*)/\1\\f + \2\\f*/' fichier

Hors ligne

#3 Le 15/05/2017, à 00:29

Arbiel

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Bonsoir

Et comment ton texte se termine-t-il ?

Sauf erreur, la proposition de pingouinux suppose que le texte à encadrer se termine à la fin de la ligne dans laquelle se trouve ta balise \v, et qu'il n'est présent qu'une seule fois dans le fichier.


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#4 Le 15/05/2017, à 06:03

pingouinux

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Arbiel #3 a écrit :

Sauf erreur, la proposition de pingouinux suppose que le texte à encadrer se termine à la fin de la ligne dans laquelle se trouve ta balise \v

Oui, comme sur l'exemple.

et qu'il n'est présent qu'une seule fois dans le fichier

Non.

Hors ligne

#5 Le 15/05/2017, à 09:58

Arbiel

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Bonjour

Arbiel a écrit :

et qu'il n'est présent qu'une seule fois dans le fichier

N'est-ce pas la conséquence de

The s command can be followed by zero or more of the following flags:

g
    Apply the replacement to all matches to the regexp, not just the first.

?


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#6 Le 15/05/2017, à 10:05

pingouinux

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Arbiel a écrit :

g
    Apply the replacement to all matches to the regexp, not just the first.

g permet de remplacer toutes les occurrences de la "regexp" sur une même ligne.

$ sed 's/a/A/' <<<"abcdabcdabcd"
Abcdabcdabcd

$ sed 's/a/A/g' <<<"abcdabcdabcd"
AbcdAbcdAbcd

Hors ligne

#7 Le 15/05/2017, à 10:18

L'Africain

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

Salut à vous,
Merci pour vos réponse, eh bien le code de pingouinux fonctionne parfaitement!


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

Hors ligne

#8 Le 15/05/2017, à 16:41

Arbiel

Re : (résolu) ajout caractères \f mon_texte \f* après code \v(chiffre)

@ pingouinux
Merci pour ton explication.


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne