Die ersten N Zeilen der grep-Ergebnisdateien müssen gelöscht werden

Lesezeit: 1 Minute

Benutzer-Avatar
Renan Corrêa Pinto

Ich versuche, ein Hacker-Problem bei einigen meiner WordPress-Installationen zu beseitigen.

Dieser Typ fügt 9 Codezeilen in den Kopf mehrerer Dateien auf meinem Server ein … Ich versuche, grep und sed zu verwenden, um dies zu lösen.

Ich versuche:

grep -r -l  "//360cdn.win/c.css" | xargs -0 sed -e '1,9d' < {}

Aber nichts passiert, wenn ich entferne -0 fromxargs, the result of the files found are clean, but they are not overwriting the origin file with thesed` Ergebnis, kann mir jemand dabei helfen?

Danke vielmals!

Du solltest benutzen --null Möglichkeit ein grep Befehl zur Ausgabe eines NUL-Bytes oder \0 nach jedem Dateinamen in der grep Ausgang. Auch verwenden -i.bak in sed für die Inline-Bearbeitung jeder Datei:

grep -lR --null '//360cdn.win/c\.css' . | xargs -0 sed -i.bak '1,9d'

  • Vielen Dank!!!! Ich versuche das seit 4 Stunden zu lösen!! =D

    – Renan Corrêa Pinto

    21. Dezember 2016 um 15:55 Uhr

  • @RenanCorrêaPinto Die Art, “Danke” auf Stack Overflow zu sagen, ist by akzeptieren (bzw Aufmunterung) eine Antwort.

    – umläuten

    21. Dezember 2016 um 15:57 Uhr

Was ist falsch daran, direkt über die Dateien zu iterieren¹?

Und vielleicht möchten Sie die hinzufügen -i flach zu sed damit Dateien bearbeitet werden ichn-Stelle

grep -r -l  "//360cdn.win/c.css" | while read f
do
   sed -e '1,9d' -i "${f}"
done

¹ Nun, Sie könnten Probleme bekommen, wenn Ihre Dateien Zeilenumbrüche und ähnliches enthalten. aber dann … wenn Ihre Website Dateien mit Zeilenumbrüchen enthält, haben Sie wahrscheinlich sowieso andere Probleme …

1368980cookie-checkDie ersten N Zeilen der grep-Ergebnisdateien müssen gelöscht werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy