Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

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.

#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 16.04 LDLC (clevo) X/Lubuntu (Mate) 16.04 sur asus.
"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
Dell Vostro 3550 Ubuntu 14.04 64 bits (je ne suis pas passé à la 16,04 à cause d'un problème majeur avec crypttab, et de sa déconcertante lenteur)
Protonmail, une messagerie sécurisée

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
Dell Vostro 3550 Ubuntu 14.04 64 bits (je ne suis pas passé à la 16,04 à cause d'un problème majeur avec crypttab, et de sa déconcertante lenteur)
Protonmail, une messagerie sécurisée

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 16.04 LDLC (clevo) X/Lubuntu (Mate) 16.04 sur asus.
"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
Dell Vostro 3550 Ubuntu 14.04 64 bits (je ne suis pas passé à la 16,04 à cause d'un problème majeur avec crypttab, et de sa déconcertante lenteur)
Protonmail, une messagerie sécurisée

Hors ligne