Nowe posty

Autor Wątek: Znajdź w plikach i skasuj całą linię  (Przeczytany 13408 razy)

plus150

  • Gość
Znajdź w plikach i skasuj całą linię
« dnia: 2015-09-29, 07:40:18 »
Witam, bardzo proszę o pomoc w takiej sprawie:

Chciałbym znaleźć wszystkie pliki *.php w katalogu /home zawierające ciąg znaków:

bd26efa2f27f70847ba9a8619d6a3a5c

I znalazłem świetnie działające polecenie:

grep -r "_transient_feed_bd26efa2f27f70847ba9a8619d6a3a5c" *


Następnie chiałbym usunąć wszystkie linie zawierające w/w ciąg znaków. Takie polecenie dziala bardzo ladnie:

sed -i '/bd26efa2f27f70847ba9a8619d6a3a5c/d' *.php

Ale to ostatnie polecenie działa tylko w katalogu w którym jestem i nie szuka w podkatalogach. Potrzebne jest rozwiązanie aby to ostatnie polecenie wykonało pracę w całym podkatalogu /home na plikach *.php

Pomoże ktoś?

Znalazłem rozwiązanie:

grep -rl "bd26efa2f27f70847ba9a8619d6a3a5c" * -R | xargs sed -i '/bd26efa2f27f70847ba9a8619d6a3a5c/d'

Ale jak zrobić aby przeszukiwał tylko katalogi public_html w katalogu /home ?


Dziękuję

Krzysztof

alvaro

  • Gość
Odp: Znajdź w plikach i skasuj całą linię
« Odpowiedź #1 dnia: 2015-09-29, 16:57:15 »
Dla bieżącego użytkownika:
find ~/public_html/ -iname '*.php' | xargs sed -i '/bd26efa2f27f70847ba9a8619d6a3a5c/d'

Dla wszystkich użytkowników:
find /home/*/public_html/ -iname '*.php' | xargs sed -i '/bd26efa2f27f70847ba9a8619d6a3a5c/d'

plus150

  • Gość
Odp: Znajdź w plikach i skasuj całą linię
« Odpowiedź #2 dnia: 2015-09-29, 18:56:11 »
O widzisz :) Tego mi było trzeba.

Dziękuję.