[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: HS : modifier plusieurs fichiers d'un coup ?
From: |
david427 |
Subject: |
Re: HS : modifier plusieurs fichiers d'un coup ? |
Date: |
Wed, 26 Jan 2022 07:33:37 +0100 (CET) |
Merci à tous ceux qui m'ont répondu, sur la liste ou en privé !
J'ai essayé en premier la solution de Jean, qui a très bien fonctionné, en 2 secondes environ pour plus d'une centaine de fichiers à modifier !
j'ai juste supprimé "/dossier/contenant/fichiers" et j'ai laissé "find -type f ...."
J'ai été surpris que ça modifie non seulement les fichiers du répertoire courant (que j'ai mis là pour faire mes tests), mais aussi ceux des sous-répertoires.
Mais bon, ça a très bien fonctionné, donc tout va bien :)
Existe-t-il également une ligne de commande pour compiler tous les nouveaux fichiers .ly (afin d'obtenir tous les pdf correspondants) ?
David
De : Jean Abou Samra <jean@abou-samra.fr>
À : Remy CLAVERIE <remy.claverie@orange.fr>;
david427@mailo.com;
lilypond-user-fr@gnu.org
Sujet : Re: HS : modifier plusieurs fichiers d'un coup ?
Date : 20/01/2022 12:53:07 Europe/Paris
Le 20/01/2022 à 11:01, Remy CLAVERIE a écrit :
>
> Hello,
>
> J'utiliserais sed ainsi :
>
> find /dossier/contenant/fichiers -type f -exec sed -i 's/à
> remplacer/remplacement/g' {} \;
>
Oui, ou
find /dossier/contenant/fichiers -name "*.ly" -exec sed -i 's/à
remplacer/remplacement/g' {} \;
qui ne fait le remplacement que dans les
fichiers avec l'extension .ly. C'est à peu
près équivalent normalement, mais je me permets
de le signaler car il m'est arrivé une fois
de me faire avoir méchamment : j'ai fait
dans ma copie locale du dépôt des sources de
LilyPond une substitution sur absolument tous
les fichiers, sans réaliser que cela affecterait
aussi les fichiers internes du gestionnaire
de version, Git. Le dépôt est devenu corrompu, et
j'ai perdu plusieurs branches de travail comme cela…
Une bonne pratique est de fournir un argument
à l'option -i de sed comme ceci :
find /dossier/contenant/fichiers -name "*.ly" -exec sed -i".sauvegarde"
"s/à remplacer/remplacement/g" {} \;
De la sorte, sed fait d'abord une sauvegarde de
chaque fichier dans "fichier.ly.sauvegarde"
avant de l'éditer. Si vous avez vérifié que
tout s'est bien passé, vous pouvez ensuite
supprimer les sauvegardes avec
find /dossier/contenant/fichiers -name "*.sauvegarde" -delete
Bien cordialement,
Jean
Re: HS : modifier plusieurs fichiers d'un coup ?, Olivier Miakinen, 2022/01/20