Sty
12
2012

Masowe usuwanie ciągu znaków w plikach tekstowych Linux/UNIX

W ostatnim czasie musiałem usunąć określony ciąg znaków w kilkunastu tysiącach plików pod systemem typu Linux/UNIX.

Przy usuwaniu ciągu pomocne były polecenia sed i find.

Składnia polecenia do przeszukania wszystkich plików bez znaczenia jaki to plik:

Możliwe są różne modyfikacje tego polecenia.

Wyszukiwanie plików z określonym rozszerzeniem,nazwą pliku

Zbyt duży kod do usunięcia można pociąć na dwie część. Najważniejszą częścią jest unikalny początek ciągu znaków, aby nie usunąć za dużo.

PRZYKŁAD
Wymazanie zawartości plików z rozszerzeniem .php w katalogu /var

SPRAWDZENIE POPRAWNOŚCI DZIAŁANIA KODU
Jak zawsze warto wszystko najpierw testować na kopiach plików, by później zastosować dane polecenie.

Sprawdzenie poprawności kodu można wykonać za pomocą poleceń find i grep oraz wysłaniu wyniku ich pracy do pliku:

Oczywiście powyższe polecenie najlepiej wykonać przed dokonaniem podmiany ciągu znaków i po tej operacji, pamiętając, aby plik z wynikiem testu miał różną nazwę dla polecenia przed i po teście, bo inaczej zostanie nadpisany.