sed - protection chaine complexe - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 14-12-2011 à 17:08:47
Si c'est sur une seule ligne tu ne peux pas changer ta stratégie et dire à sed de deleter la ligne qui matche ton pattern (style toute ligne qui matche camillerossi -> delete ?)
Marsh Posté le 14-12-2011 à 17:21:38
o'gure a écrit : Si c'est sur une seule ligne tu ne peux pas changer ta stratégie et dire à sed de deleter la ligne qui matche ton pattern (style toute ligne qui matche camillerossi -> delete ?) |
Non c'est en plein milieu de la ligne, bien évidemment
o'gure a écrit :
|
J'ai testé avec cette commande:
Code :
|
Il ne me met pas d'erreur, mais par contre il fait rien. Je pense que c'est à cause des / que je n ai pas protégé, ou alors les ". Je tente et je te dis.
Merci de ton aide en tous cas.
Marsh Posté le 14-12-2011 à 17:25:55
ReplyMarsh Posté le 14-12-2011 à 17:27:18
Modération a écrit : Peux-tu mettre un titre un peu... plus orienté sur ton problème ? |
C'est bon, désolé ...
Marsh Posté le 14-12-2011 à 17:36:25
o'gure a écrit :
|
Bon je n'ai pas réussi, j'ai essayé avec ça:
Code :
|
Et aussi avec # comme séparateur, mais rien.
J'essaye des trucs ...
Marsh Posté le 14-12-2011 à 18:07:30
sed bosse ligne à ligne, ton html peut être sur plusieurs lignes (et on peut foutre les attributs un peu où on veut) donc sed est peut-être pas le meilleur outil pour ça (un peu de xslt si c'est du xhtml serait bien mieux).
Sinon ça marche très bien, pas besoin de tout protéger partout hein
Sans sed
<a href="https://twitter.com/camillerossi" class="twitter-follow-button" data-show-count="false">Follow @camillerossi</a><script src="//platform.twitter.com/widgets.js" type="text/javascript"></script> |
Avec sed
XXX class="twitter-follow-button" data-show-count="false">Follow @camillerossi</a><script src="//platform.twitter.com/widgets.js" type="text/javascript"></script> |
Marsh Posté le 14-12-2011 à 18:17:29
neyslim_benchmark a écrit :
|
n'utilise pas d comme action si tu ne veux pas supprimer toute la ligne.
Marsh Posté le 15-12-2011 à 10:45:15
Xavier_OM a écrit : sed bosse ligne à ligne, ton html peut être sur plusieurs lignes (et on peut foutre les attributs un peu où on veut) donc sed est peut-être pas le meilleur outil pour ça (un peu de xslt si c'est du xhtml serait bien mieux).
|
Alors ce code est bien sur une seule ligne, mais au milieu. Par contre chose intéressante, je me suis rendu compte que effectivement "echo x | sed ..." ca fonctionne, mais pas avec "find -exec", et c'est peut-être la le problème. Je vais essayer une autre méthode que find.
Marsh Posté le 15-12-2011 à 11:04:52
Bon alors attendez avant de m'aider parce que je viens à peine de comprendre que sed travaille sur l'affichage mais n'écrit pas sur le fichier hum ...
Je vous dis quand j'ai réussi.
Marsh Posté le 15-12-2011 à 11:06:17
neyslim_benchmark a écrit : Bon alors attendez avant de m'aider parce que je viens à peine de comprendre que sed travaille sur l'affichage mais n'écrit pas sur le fichier hum ... |
et depuis le temps, tu aurais peut être déjà fini la méthode manuelle sur les 140pages
Marsh Posté le 15-12-2011 à 11:08:01
Ben plus ou moins, vu que je fais du support sur des équipements télécom en même temps, mais bon au moins je commence à piger la méthode ^^
Marsh Posté le 15-12-2011 à 11:10:21
neyslim_benchmark a écrit : Bon alors attendez avant de m'aider parce que je viens à peine de comprendre que sed travaille sur l'affichage mais n'écrit pas sur le fichier hum ... |
man sed
option -i pour modifier le fichier, sinon c'est clairement dit que l'output par défaut est le "standard output". Ce qui te permet de faire garder l'original et de faire les modifications vers un répertoire résultat avec les redirections classiques du shell.
Marsh Posté le 14-12-2011 à 17:03:46
Bonjour à tous,
On m'a chargé de supprimer un compte twitter apparaissant sur toutes les pages du site web de ma boite. Le problème: le dev du site web au lieu d'utiliser footer.php, est passé sur TOUTES LES PAGES (140 environ) et a inscrit le code.
Mon problème est que j'arrive pas à protéger correctement ma chaine pour la virer avec sed.
Voici la chaine:
J'arrive à la protéger pour que grep la trouve, mais avec sed ça ne marche pas.
Voici la commande utilisée:
J'ai remplacé les caractères de séparation par des # afin d'éviter d'interpréter les / dans la chaine. Je sais plus ce que j'ai essayé ou pas, et je vous avoue que la j'en ai marre.
Si une bonne âme peut m'aider ..
Message édité par neyslim_benchmark le 14-12-2011 à 17:26:58