PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Serveur - Sécurité et techniques > fr.comp.os.unix > Débutant Script Bash - remplacement dans un fichier texte
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
fr.comp.os.unix Système UNIX.

Débutant Script Bash - remplacement dans un fichier texte

Réponse
 
LinkBack Outils de la discussion
Vieux 16/03/2006, 11h40   #9
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

On Thu, 16 Mar 2006 10:23:12 +0000 (UTC), Jacques L'helgoualc'h wrote:
[...]
>>>> find . -name '*.tex' -type f -exec perl -pi -e '
>>>> s/\\section/\\Section/g' {} +

>
> Le «+» n'est pas accepté par le find de debian sarge, il lui faut un
> «\;», «find» de GNU version 4.1.20


Ah oui, mais le + est Unix (specifié par la Single Unix
Specification et POSIX) et on est sur fr.comp.os.*unix*, pas
fr.comp.os.gnu. Cela dit, les dernieres versions de GNU find
doivent l'avoir.

--
Stephane
  Réponse avec citation
Vieux 16/03/2006, 11h42   #10
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

On Thu, 16 Mar 2006 11:30:22 +0100, noone@nowhere.undef wrote:
>
> Merci à vous
>
> Et tant que j'y suis comment remplacer
>
> $$....$$
>
> par \[.....\]


perl -pi -e '
s/\\section/\\Section/g;
s/\$\$(.*?)\$\$/\\[$1\\]/g;' ./**/*.tex

--
Stephane
  Réponse avec citation
Vieux 16/03/2006, 12h07   #11
Jacques L'helgoualc'h
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

Le 16-03-2006, noone@nowhere.undef <noone@nowhere.undef> a écrit:
> Merci à vous


de rien,

> Et tant que j'y suis comment remplacer
>
> $$....$$
>
> par \[.....\]


C'est /nettement/ plus compliqué : essaie un «grep -F '$$'» sur tes
fichiers *.tex, il peut y avoir des $$42\$$$, des \verb+$$+, des $$ en
commentaire, etc.

En gros, seul (La)TeX «comprend» vraiment où commence le mode
mathématique... => fu2 fr.comp.text.tex (ça fera toujours plaisir à
Josselin).

Avec Emacs et AUCTeX, la colorisation est généralement satisfaisante, on
devrait donc pouvoir distinguer le $$ ouvrant du fermant en elisp : =>
fu2 fr.comp.applications.emacs ?

--
Jacques L'helgoualc'h
  Réponse avec citation
Vieux 16/03/2006, 12h28   #12
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

On Thu, 16 Mar 2006 12:07:42 +0000 (UTC), Jacques L'helgoualc'h wrote:
> Le 16-03-2006, noone@nowhere.undef <noone@nowhere.undef> a écrit:
>> Merci à vous

>
> de rien,
>
>> Et tant que j'y suis comment remplacer
>>
>> $$....$$
>>
>> par \[.....\]

>
> C'est /nettement/ plus compliqué : essaie un «grep -F '$$'» sur tes
> fichiers *.tex, il peut y avoir des $$42\$$$, des \verb+$$+, des $$ en
> commentaire, etc.

[...]

perl -pi -e '
s{
\$\$ ((?: \. | .)*?) \$\$ |
% .*?\n |
\\verb(.).*?\1 |
\\. |
[^\\%\$]+ |
  Réponse avec citation
Vieux 16/03/2006, 12h30   #13
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

On 16 Mar 2006 12:28:06 GMT, Stephane Chazelas wrote:
> On Thu, 16 Mar 2006 12:07:42 +0000 (UTC), Jacques L'helgoualc'h wrote:
>> Le 16-03-2006, noone@nowhere.undef <noone@nowhere.undef> a écrit:
>>> Merci à vous

>>
>> de rien,
>>
>>> Et tant que j'y suis comment remplacer
>>>
>>> $$....$$
>>>
>>> par \[.....\]

>>
>> C'est /nettement/ plus compliqué : essaie un «grep -F '$$'» sur tes
>> fichiers *.tex, il peut y avoir des $$42\$$$, des \verb+$$+, des $$ en
>> commentaire, etc.

> [...]
>
> perl -pi -e '
> s{
> \$\$ ((?: \. | .)*?) \$\$ |

^
manque un \ la:

\$\$ ((?: \\. | .)*?) \$\$ |

> % .*?\n |
> \\verb(.).*?\1 |
> \\. |
> [^\\%\$]+ |
> .
> }{defined($1) ? "\\[$1\\]" : $&}gsxe' ...


--
Stephane
  Réponse avec citation
Vieux 16/03/2006, 15h06   #14
Jacques L'helgoualc'h
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

[En-tête "Followup-To:" positionné à fr.comp.os.unix.] (ou un groupe
Perl ?)
Le 16-03-2006, Stephane Chazelas a écrit:
> On 16 Mar 2006 12:28:06 GMT, Stephane Chazelas wrote:
>> On Thu, 16 Mar 2006 12:07:42 +0000 (UTC), Jacques L'helgoualc'h wrote:
>>> Le 16-03-2006, noone@nowhere.undef <noone@nowhere.undef> a écrit:
>>>>[...] comment remplacer
>>>>
>>>> $$....$$
>>>>
>>>> par \[.....\]
>>>
>>> C'est /nettement/ plus compliqué : essaie un «grep -F '$$'» sur tes
>>> fichiers *.tex, il peut y avoir des $$42\$$$, des \verb+$$+, des $$ en
>>> commentaire, etc.


aussi des

\begin{verbatim}
...
\end{verbatim}

et autres, mais bon, faire un script pervers-proof doit être à peu près
impossible.

>> [...]
>>
>> perl -pi -e '
>> s{
>> \$\$ ((?: \. | .)*?) \$\$ |

> ^
> manque un \ la:
>
> \$\$ ((?: \\. | .)*?) \$\$ |
>
>> % .*?\n |
>> \\verb(.).*?\1 |
>> \\. |
>> [^\\%\$]+ |
>> .
>> }{defined($1) ? "\\[$1\\]" : $&}gsxe' ...


Les regexpes Perl sont très jolies, mais chez moi© celle-là ne marche
pas toujours :/ (debian sarge, Perl 5.8.4)

$ cat essai.tex
debut
$$ formule 1 $$ à $10\$$
bla

$$
F2
$$

bla
$$ x + y $$ avec \verb+$$+

et enfin $$
z
$$ % et $$ F6 $$

$ $ perl -p -e '
s{
\$\$ ((?: \\. | .)*?) \$\$ |
% .*?\n |
\\verb(.).*?\1 |
\\. |
[^\\%\$]+ |
  Réponse avec citation
Vieux 16/03/2006, 16h48   #15
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

On Thu, 16 Mar 2006 15:06:57 +0000 (UTC), Jacques L'helgoualc'h wrote:
[...]
> $ $ perl -p -e '
> s{
> \$\$ ((?: \\. | .)*?) \$\$ |
> % .*?\n |
> \\verb(.).*?\1 |
> \\. |
> [^\\%\$]+ |
> .
> }{defined($1) ? "\\[$1\\]" : $&}gsxe' < essai.tex



Oops, bien sur, le "s" dans les attributs de substitution ne
sert a rien si on ne dit pas a perl de ne pas travailler sur une
ligne a la fois. Utiliser perl -0777 -pe ...

perl -0777 -pe '
s{
\$\$ ((?: \\. | .)*?) \$\$ |
% .*?\n |
\\verb(.).*?\1 |
\\. |
[^\\%\$]+ |
  Réponse avec citation
Vieux 16/03/2006, 16h56   #16
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

On 16 Mar 2006 16:48:55 GMT, Stephane Chazelas wrote:
> On Thu, 16 Mar 2006 15:06:57 +0000 (UTC), Jacques L'helgoualc'h wrote:
> [...]
>> $ $ perl -p -e '
>> s{
>> \$\$ ((?: \\. | .)*?) \$\$ |
>> % .*?\n |
>> \\verb(.).*?\1 |
>> \\. |
>> [^\\%\$]+ |
>> .
>> }{defined($1) ? "\\[$1\\]" : $&}gsxe' < essai.tex

>
>
> Oops, bien sur, le "s" dans les attributs de substitution ne
> sert a rien si on ne dit pas a perl de ne pas travailler sur une
> ligne a la fois. Utiliser perl -0777 -pe ...
>
> perl -0777 -pe '
> s{
> \$\$ ((?: \\. | .)*?) \$\$ |
> % .*?\n |
> \\verb(.).*?\1 |
> \\. |
> [^\\%\$]+ |
> .
> }{defined($1) ? "\\[$1\\]" : $&}gsxe' essai.tex

[...]

Hmmm, sorry

perl -0777 -pe '
s{
\$\$ ((?: \\. | .)*?) \$\$ |
% .*?\n |
\\verb(.).*?\2 |
\\begin\{verbatim\}.*?\\end\{verbatim\} |
\\. |
[^\\%\$]+ |
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 01h49.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,14707 seconds with 16 queries