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 21/10/2014, à 18:33

abelthorne

[résolu] Script pour changer une chaîne de caractère dans un fichier ?

Bonjour,
Je dois traiter plusieurs centaines de fichiers SVG dans lesquels je veux changer une couleur utilisée par divers objets. C'est un peu chiant de faire ça fichier par fichier avec GEdit en faisant un chercher/remplacer. Je suis assez nul en scripts shell mais je crois que c'est le genre de manip faisable avec sed, non ?
Quelqu'un saurait me faire un petit script Nautilus qui me permettrait de sélectionner des fichiers et de remplacer dedans la chaîne fill:#000000 par fill:#ff00ff ?

Dernière modification par abelthorne (Le 21/10/2014, à 19:11)

Hors ligne

#2 Le 21/10/2014, à 18:56

Shanx

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

Salut,

je n’ai aucune idée de comment faire ça avec nautilus. Par contre, en ligne de commande, c’est super simple, en supposant que tu veuilles modifier ça dans tous les fichiers présents dans le répertoire courant :

sed -i -e "s/fill\:\#000000/fill\:\#ff00ff/g" *

Dernière modification par Shanx (Le 21/10/2014, à 19:03)


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#3 Le 21/10/2014, à 18:58

abelthorne

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

Ah, super, merci. Pour le script Nautilus, je dois avoir des exemples pour adapter.

Dernière modification par abelthorne (Le 21/10/2014, à 19:06)

Hors ligne

#4 Le 21/10/2014, à 19:04

Shanx

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

Attention, j’ai légèrement modifié la commande.


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#5 Le 21/10/2014, à 19:07

abelthorne

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

Ah oui, ça marche mieux. Avec la première version ça marchait mais il me faisait une copie des fichiers d'origine avec l'extensions .svge.

Hors ligne

#6 Le 21/10/2014, à 19:07

erresse

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

Bonsoir,

Nautilus est un navigateur, un gestionnaire de fichiers, il permet de lancer des scripts bash pour les faire s'exécuter dans un répertoire particulier, par exemple.
Les scripts ne sont pas faits "en Nautilus" mais en bash, au niveau langage de commande, ou en python ou un autre langage de programmation interprété. Voilà sans doute pourquoi Shank dit ne pas savoir faire de script Nautilus...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#7 Le 21/10/2014, à 19:09

abelthorne

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

Donc, le script pour Nautilus :

#!/bin/bash
for fichier in "$@"; do
  sed -i -e "s/fill\:\#000000/fill\:\#ff00ff/g" "$fichier"
done

Dernière modification par abelthorne (Le 21/10/2014, à 19:10)

Hors ligne

#8 Le 21/10/2014, à 19:18

Shanx

Re : [résolu] Script pour changer une chaîne de caractère dans un fichier ?

abelthorne a écrit :

Ah oui, ça marche mieux. Avec la première version ça marchait mais il me faisait une copie des fichiers d'origine avec l'extensions .svge.

Oui oui, j’avais fumé et « -i -e » c’était transformé en « -ie ».


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne