Bonjour,
je suis à la recherche d'un logiciel qui puisse analyser un dossier et son contenu pour remplacer un mot à la fois s'il est présent dans le nom d'un fichier et dans le contenu d'un fichier (html, txt,etc.).
Merci.
Bonjour,
je suis à la recherche d'un logiciel qui puisse analyser un dossier et son contenu pour remplacer un mot à la fois s'il est présent dans le nom d'un fichier et dans le contenu d'un fichier (html, txt,etc.).
Merci.
# Awk & Sed
Posté par DontShootMe . Évalué à 2.
Tu pourrais le faire grâce au couple Awk & Sed
Ma recherche google me donne ce lien pour en apprendre plus !
[^] # Re: Awk & Sed
Posté par chimrod (site web personnel) . Évalué à 4.
Regexxer propose une interfaçage graphique, qui permet de sélectionner les changements au cas par cas. Pratique aussi
[^] # Re: Awk & Sed
Posté par arnauld . Évalué à 1.
Merci, j'ai essayé Regexxer mais ça a freezé…
arnauld
[^] # Re: Awk & Sed
Posté par totof2000 . Évalué à 1.
Vu qu'il faut pouvoir analyser un dossier et son contenu, il faudra peut-être y ajouter find s'il y a des sous-dossiers dans le dossier.
[^] # Re: Awk & Sed
Posté par Loïs Taulelle ࿋ (site web personnel) . Évalué à 1.
J'allais proposer un mix find + sed.
Pour être didactique on pourrait find, puis grep, puis sed (mais no need, sed intègre son propre grep).
Proverbe Alien : Sauvez la terre ? Mangez des humains !
# c'est un peu vague comme énoncé
Posté par fearan . Évalué à 3.
Tu pourrais être plus précis sur l'exercice : format de fichier en entré, exemple de cas (exemple quoi)
Car la simplement comme logiciel :
on a emacs qui fait tout
perl si tu veux un truc plus user friendly ;)
ou comme dit plus haut une articulation bash autour de sed
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: c'est un peu vague comme énoncé
Posté par arnauld . Évalué à 2. Dernière modification le 04 juin 2019 à 16:21.
Oui, en effet.
J'ai un blog statique et je change de domaine. Je me retrouve donc avec des fichiers de configuration du blog, des fichiers .html, des fichiers .md, etc.
Plutôt que de changer mon ancien nom de domaine qui apparait dans chacun des fichiers je cherche une solution pour scanner tous les dossiers, sous-dossiers, fichiers et changer le nom de domaine par un autre.
Je m'aperçois cependant que le temps passé à chercher ce logiciel aurait été suffisant à tout changer à la main… :-)
arnauld
[^] # Re: c'est un peu vague comme énoncé
Posté par fearan . Évalué à 7. Dernière modification le 04 juin 2019 à 16:37.
rapidement
en gros va remplacer toutes les chaines monNomDeDomaine[.]fr par monNouveauNomDeDomaine.org dans tous les fichier se terminant par html ou md.
dans le cas où tu aurais des / dans les noms à repplacer, il vaut mieux uiliser # comme séparateur de champs, donc
le -i.old permet de ne pas perdre les fichier d'origines, ils seront simplement renommé en .old
-i tout court va modifier les fichiers sans sauvegarde :)
le [.] dans la première partie permet de ne pas interpréter le . (dans une regEx, le . désigne n'importe quel caractère ) ou plus précisément [.] prends un caractère dans la liste des caractères entre les [] ici il n'y a que le . certains utilisent ., mais ça devient vite le bordel, notamment quand on inclue des chaines de caractères dans les autres.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: c'est un peu vague comme énoncé
Posté par arnauld . Évalué à 1.
Merci, je vais voir ça ce soir.
arnauld
[^] # Re: c'est un peu vague comme énoncé
Posté par fearan . Évalué à 2.
Honnêtement, ça aide beaucoup de connaitre le besoin (en plus d'écarter les éventuels 'faites mes devoirs', ou 'faites mon job')
Une autre solutions (sans ligne de commande), c'est ouvrir tous les fichiers dans un éditeur et de faire un remplacer dans tous les fichiers; certains éditeurs le permettent, mais ça va dépendre du nombre de fichiers et de leur taille ;)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: c'est un peu vague comme énoncé
Posté par Anthony Jaguenaud . Évalué à 2.
Salut,
J’utilise souvent l’option
-i
, je fais confiance à la gconf pour vérifier le diff et revenir en arrière.Merci beaucoup de m’avoir appris le
-i.toto
qui me servira sûrement un jour.Merci encore.
[^] # Re: c'est un peu vague comme énoncé
Posté par FantastIX . Évalué à 2.
Ou encore
find -iname '*html' -or -iname '*md' | xargs sed -r 's#monNomDeDomaine[.]fr#monNouveauNomDeDomaine.org#g' -i.old
Ça évite de lancer un sous-shell et de saturer l'espace de la ligne de commande si le nombre de fichiers correspondants est trop important.
[^] # Re: c'est un peu vague comme énoncé
Posté par Loïs Taulelle ࿋ (site web personnel) . Évalué à 4.
On ne perds jamais de temps à écrire un oneliner sed :o)
Proverbe Alien : Sauvez la terre ? Mangez des humains !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.