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, 08h26   #1 (permalink)
noone@nowhere.undef
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Débutant Script Bash - remplacement dans un fichier texte

Bonjour,

je dois modifier un gros document LaTeX.

Je dois remplacer dans tous les fichiers *.tex (y compris dans les sous
répertoires) \section par \Section mais je ne sais pas trop comment m'y
prendre.

Merci de m'aider
  Réponse avec citation
Vieux 16/03/2006, 08h42   #2 (permalink)
Stephane Chazelas
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

2006-03-16, 09:26(+01), noone@nowhere.undef:
[...]
> je dois modifier un gros document LaTeX.
>
> Je dois remplacer dans tous les fichiers *.tex (y compris dans les sous
> répertoires) \section par \Section mais je ne sais pas trop comment m'y
> prendre.

[...]

Avec zsh, je ferais tout simplement:

perl -pi -e 's/\\section/\\Section/g' ./**/*.tex(.)

Avec bash:

find . -name '*.tex' -type f -exec perl -pi -e '
s/\\section/\\Section/g' {} +

--
Stéphane
  Réponse avec citation
Vieux 16/03/2006, 09h26   #3 (permalink)
Jacques L'helgoualc'h
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans unfichier texte

Bonjour,

Le 16-03-2006, Stephane Chazelas <cette.adresse@est.invalid> a écrit:
> 2006-03-16, 09:26(+01), noone@nowhere.undef:
> [...]
>> je dois modifier un gros document LaTeX.
>>
>> Je dois remplacer dans tous les fichiers *.tex (y compris dans les sous
>> répertoires) \section par \Section mais je ne sais pas trop comment m'y
>> prendre.


Faut-il aussi modifier de même la version étoilée, ainsi que

\sectionheading
\sectionlevel
\sectionmark
\sectionname

quel que soit le contexte ?

> [...]
>
> Avec zsh, je ferais tout simplement:
>
> perl -pi -e 's/\\section/\\Section/g' ./**/*.tex(.)


Deux lettres de moins à taper avec «sed -i» (GNU Sed, version >=4

> Avec bash:
>
> find . -name '*.tex' -type f -exec perl -pi -e '
> s/\\section/\\Section/g' {} +


Ce ne serait pas mieux avec find . -name '*.tex' -type f | xargs ... ?

--
Jacques L'helgoualc'h
  Réponse avec citation
Vieux 16/03/2006, 09h35   #4 (permalink)
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 09:26:13 +0000 (UTC), Jacques L'helgoualc'h wrote:
[...]
>> Avec zsh, je ferais tout simplement:
>>
>> perl -pi -e 's/\\section/\\Section/g' ./**/*.tex(.)

>
> Deux lettres de moins à taper avec «sed -i» (GNU Sed, version >=4


Oui, mais GNU n'est pas Unix.

>> Avec bash:
>>
>> find . -name '*.tex' -type f -exec perl -pi -e '
>> s/\\section/\\Section/g' {} +

>
> Ce ne serait pas mieux avec find . -name '*.tex' -type f | xargs ... ?


Non, au contraire, pourquoi? xargs n'est pas compatible avec
find (a moins d'utiliser des options specifiques a GNU ou BSD).

--
Stephane
  Réponse avec citation
Vieux 16/03/2006, 09h35   #5 (permalink)
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 09:26:13 +0000 (UTC), Jacques L'helgoualc'h wrote:
[...]
>> Avec zsh, je ferais tout simplement:
>>
>> perl -pi -e 's/\\section/\\Section/g' ./**/*.tex(.)

>
> Deux lettres de moins à taper avec «sed -i» (GNU Sed, version >=4


Oui, mais GNU n'est pas Unix.

>> Avec bash:
>>
>> find . -name '*.tex' -type f -exec perl -pi -e '
>> s/\\section/\\Section/g' {} +

>
> Ce ne serait pas mieux avec find . -name '*.tex' -type f | xargs ... ?


Non, au contraire, pourquoi? xargs n'est pas compatible avec
find (a moins d'utiliser des options specifiques a GNU ou BSD).

--
Stephane
  Réponse avec citation
Vieux 16/03/2006, 09h36   #6 (permalink)
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 09:26:13 +0000 (UTC), Jacques L'helgoualc'h wrote:
[...]
>> Avec zsh, je ferais tout simplement:
>>
>> perl -pi -e 's/\\section/\\Section/g' ./**/*.tex(.)

>
> Deux lettres de moins à taper avec «sed -i» (GNU Sed, version >=4


Oui, mais GNU n'est pas Unix.

>> Avec bash:
>>
>> find . -name '*.tex' -type f -exec perl -pi -e '
>> s/\\section/\\Section/g' {} +

>
> Ce ne serait pas mieux avec find . -name '*.tex' -type f | xargs ... ?


Non, au contraire, pourquoi? xargs n'est pas compatible avec
find (a moins d'utiliser des options specifiques a GNU ou BSD).

--
Stephane
  Réponse avec citation
Vieux 16/03/2006, 10h23   #7 (permalink)
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, Stephane Chazelas a écrit:
> On Thu, 16 Mar 2006 09:26:13 +0000 (UTC), Jacques L'helgoualc'h wrote:
> [...]
>>> Avec zsh, je ferais tout simplement:
>>>
>>> perl -pi -e 's/\\section/\\Section/g' ./**/*.tex(.)

>>
>> Deux lettres de moins à taper avec «sed -i» (GNU Sed, version >=4

>
> Oui, mais GNU n'est pas Unix.


C'est bien pourquoi je précisais.

>>> Avec bash:
>>>
>>> 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

>> Ce ne serait pas mieux avec find . -name '*.tex' -type f | xargs ... ?

>
> Non, au contraire, pourquoi?


Pour ne pas lancer une instance de perl par fichier, quand + ne marche
pas.

> xargs n'est pas compatible avec find (a moins d'utiliser des options
> specifiques a GNU ou BSD).


Ah oui, c'est plutôt find . -name '*.tex' -type f -print0 | xargs -0 ...



Pour ne remplacer que \section (et \section*), mais pas \sectionmark(*)
et autres, on peut utiliser 's/\\section\b/\\Section/g' (avec Perl comme
avec GNU Sed v.4).

(*) Utilisation à vérifier dans le style et/ou la classe maison...
--
Jacques L'helgoualc'h
  Réponse avec citation
Vieux 16/03/2006, 10h30   #8 (permalink)
noone@nowhere.undef
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Débutant Script Bash - remplacement dans un fichier texte


Merci à vous

Et tant que j'y suis comment remplacer

$$....$$

par \[.....\]

  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 09h23.


Édité par : vBulletin® version 3.7.2
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,14384 seconds with 16 queries