2016-12-21 53 views
6

Próbuję pozbyć się problemu hakerów na niektórych moich instalacjach wordpress.Należy usunąć pierwsze N ​​wierszy plików wynikowych grep

Ten facet umieszcza 9 linii kodu w nagłówku wielu plików na moim serwerze ... Próbuję użyć grep i sed, aby rozwiązać ten problem.

Im próby:

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

Ale nic się nie dzieje, jeśli usunąć -0 from xargs , the result of the files found are clean, but they are not overwriting the origin file with the wynik sed`, może ktoś mi pomóc z tym?

Wielkie dzięki!

Odpowiedz

2

Należy użyć opcji --null w komendzie grep, aby wyprowadzić bajt NUL lub \0 po każdej nazwie pliku na wyjściu grep. Również użyć -i.bak w sed inline edycji dla każdego pliku:

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

dziękuję bardzo !!!! Próbuję rozwiązać to przez ostatnie 4 godziny !! = D –

+1

@ RenanCorrêaPinto sposób, aby powiedzieć "dziękuję" na [tak] jest * akceptując * (i/lub * upvoting *) odpowiedź. –

0

Co z Iterowanie nad plikami directly¹?

A może chcesz dodać -i płasko sed tak, że pliki są edytowane i n-miejsce

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

¹ dobrze, może mieć problemy, jeśli pliki zawierają nowe linie i tym podobne . ale ... jeśli twoja strona zawiera pliki z nowymi liniami, prawdopodobnie masz inne problemy, tak czy inaczej ...