Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: wyszukiwanie w plikach i kasowanie wyników z plików  (Przeczytany 19694 razy)

babilon82

  • Gość
Witam.
Nie wiem czy to właściwe miejsce na moje pytanie i ten temat. Jeśli nie to przepraszam za pomyłkę.
Sprawa wygląda następująco:
Jest serwer www, na nim joomla, przez moją bezmyślność dopuściłem do zainfekowania tego serwera jakimś syfem który dopisał mi praktycznie do wszystkich plików z rozszerzeniem *.js coś takiego:

"document.write('');"

Ręczne edytowanie wszystkich plików i kasowanie tego wpisu to mordęga.
Polecenie greep pięknie przeszukuje katalogi czytając zawartość pliku.
Nie mam pojęcia jak miałby wyglądać skrypt bądź składania polecenia które wyszuka wszystkie plik z takim wpisem w środku i wykasuje te wpisy.

Z góry dziękuje za pomoc.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #1 dnia: 2013-04-18, 23:09:27 »
Zamiast GREP użyć SED. To takie skryptowe automatyczne znajdź-i-zamień. W sam raz się nada.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

babilon82

  • Gość
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #2 dnia: 2013-04-18, 23:31:14 »
Ok. Świetnie, zamieni mi jeden ciąg znaków na drugi, a zrobi to automatycznie dla prawie 700 plików rozsianych po różnych katalogach?
Nie chcę być upierdliwy. Jestem wdzięczny za sugestie, tylko jeśli możesz to czy mógłbyś zaprezentować przykładową składnię polecenia z wykorzystaniem programu "sed", bo to co znalazłem na szybko to nic mi to nie mówi.
Chodzi mi o to też, że sed czyta plik wierszami (z tego co na szybko doczytałem, problem polega na tym, że ciąg który chcę odnaleźć i wykasować niekoniecznie jest samotnym wierszem, często gęsto jest na końcu wiersza, nie chciałbym uszkodzić skryptu przez skasowanie jakiejś klamry czy tez średnika)

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #3 dnia: 2013-04-19, 09:16:44 »
Cytuj
Świetnie, zamieni mi jeden ciąg znaków na drugi, a zrobi to automatycznie dla prawie 700 plików rozsianych po różnych katalogach?
W takim razie find + sed.

chmooreck

  • Gość
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #4 dnia: 2013-04-19, 14:06:12 »
Sam sobie poeksperymentuj na jakiejś próbce danych. Więcej się nauczysz, niż przy przepisaniu gotowca.

babilon82

  • Gość
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #5 dnia: 2013-04-19, 15:06:00 »
Masz rację z tym eksperymentowaniem samemu. Tylko jaki sens ma w takim razie istnienie tego forum. Ja nie oczekuje od nikogo, gotowego rozwiązania, ale wskazania kierunku, jeśli ktoś mi pisze "użyj sed-a" to przynajmniej podałby jakiś zbliżony do mojego pytania przykład zastosowania tego pakietu. bo tyle to można się dowiedzieć z googla, nie pisząc postów na forum. Decydując się na założenie tego postu założyłem że znajdę tu pomoc, i ludzi którzy podzielą się wiedzą już sprawdzona i odfiltrowaną od nikomu nie potrzebnych śmieci.

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #6 dnia: 2013-04-19, 15:47:23 »
To są podstawy podstaw:
1) sedem usuwasz swój ciąg znaków zamieniając go na ciąg pusty,
2) findem wyszukujesz pliki "*.js" w określonym drzewie katalogów,
3) zagnieżdżasz seda w findzie, tak, żeby wywoływał go dla każdego znalezionego pliku.

Dowiedz się najpierw co to jest ten "sed", przećwicz każdy z punktów i pytaj jak masz problem.

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 53
    • Zobacz profil
wyszukiwanie w plikach i kasowanie wyników z plików
« Odpowiedź #7 dnia: 2013-04-19, 21:44:09 »
Ja bym to zrobił w perlu, a find i sed to było by jakoś tak
find / -type f -name *.js -exec sed -i 's/ciągznaków//g' {}\\;
a tutaj trochę info