Bonjour,
sur un site web dont je gere le serveur, nous avons une verole.
J'ai trouvé le motif à supprimer de plusieurs fichiers.
ce motif s'obtient facilement en faisant
grep -B12 -A15 aHR0cDovL21icm93c2Vyc3RhdHMuY29tL3N0YXRIL3N0YXQucGhw index.php
maintenant je voudrais supprimer ces lignes du fichier index.php
j'ai pensé à sed/awk, mais je ne sais pas comment lui dire de prendre les 12 lignes avant le motif, et 15 lignes apres pour les remplacer par "rien"
evidemment s'il n'y avait qu'un seul fichier, je l'ouvrirais et je taperais en dur dedans
mais comme il y en a plusieurs, si je pouvais faire un find xxx yyy -exec monscript_qui_nettoie.sh \;
ca m'arrangerait bien
# Une piste ....
Posté par totof2000 . Évalué à 2.
Il y a peut-être moyen de faire mieux mais voici une première piste :
[^] # Re: Une piste ....
Posté par NeoX . Évalué à 2.
pas mal mais non,
ca ne marche pas dans si c'est du code au milieu du fichier, car ca cherche des fichiers hierachisés
avec possiblités de trier par ordre alphanumerique
or le bout de code a trouver à l'interieur des fichiers est le suivant.
on se rend bien compte qu'il ne faut pas rechercher juste ligne par ligne
mais le motif dans son ensemble
j'ai trouvé un truc qui semble le faire sur mes 3 fichiers de test, c'est avec :
[^] # Re: Une piste ....
Posté par totof2000 . Évalué à 2.
??? Tu peux m'expliquer la ifférence entre diff --suppress-common-line et comm ? Là j'ai l'impression que c'est la même chose.
[^] # Re: Une piste ....
Posté par NeoX . Évalué à 3. Dernière modification le 14 octobre 2013 à 16:36.
le comm ne semble pas aimer si j'ai
Fichier.php
motif.txt
en fait si
ca marche avec ces exemples mais pas avec du code plus complexe :(
ca me renvoie
comm: le fichier 1 n'est pas dans l'ordre attendu
comm: le fichier 2 n'est pas dans l'ordre attendu
[^] # Re: Une piste ....
Posté par totof2000 . Évalué à 2.
OK, j'ai compris, merci.
Je pense que tu t'en sortirais plus facilement avec Perl …. Mais comme ça fait un bail que je n'en ai pas fait, je ne peux pas trop t'aider.
# En bash (probablement)
Posté par littlebreizhman . Évalué à 10. Dernière modification le 14 octobre 2013 à 16:25.
Sauf erreur et si j'ai compris ce que tu veux faire
[^] # Re: En bash (probablement)
Posté par NeoX . Évalué à 2.
Joli
ca a l'air de faire ce que je veux.
# Commun un appel à l'ed
Posté par ecid . Évalué à 1.
Dans cet exemple, ça "matche" la ligne voulue, retourne 10 lignes en arrière et efface 15 lignes.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.