Wyszukanie i zamiana tekstu w wielu plikach w shell’u bash.
Sep 16
Poniższa porada opisuje, jak w prosty sposób, wykorzystując jednolinijkowe skrypty shell wykonać wyszukanie i zmianę tekstu na inny w wielu plikach tekstowych jednocześnie.
Wykonując audyt statycznych stron internetowych, często muszę wykonać szereg powtarzających się zmian w setkach lub nawet tysiącach plików HTML. Wykonywanie takiej operacji “na piechotę” w każdym s plików po kolei trwałoby kilka tygodni, jednak wcale nie trzeba robić tego w ten sposób. Z pomocą przychodzą skrypty powłoki shell.
Złożone zastąpienia tekstu w wielu plikach jednocześnie można wykonać na wiele sposobów, jednak chyba najprostszym z nich są krótkie, jednolinijkowe skrypty perl. Poniższe przykłady ilustrują sposób pisania takich skryptów.
#dodanie do tytułu każdej strony końcówki " - Pomocnik IT"
perl -pi -w -e 's/<\/TITLE>/ \- Pomocnik IT<\/TITLE>/g;' *.html
#zmiana adresu email z adam@it-pomocnik.org na ania@it-pomocnik.org
perl -pi -w -e 's/adam\@it\-pomocnik\.org/ania\@it\-pomocnik\.org/g;' *.html
Powyższe skrypty edytują wszystkie pliki HTML z bieżącego katalogu. Po drobnej modyfikacji można je oczywiście wykorzystać do modyfikacji plików tekstowych o innych rozszerzeniach. Zwróć uwagę, że przed każdym znakiem specjalnym w zmienianych tekstach należy wstawić znak backslash, aby skrypt traktował je jako część napisu, a nie przełączniki opcji w skrypcie.










Apr 19 at 19:48
>najprostRZym
LOL
Apr 20 at 12:47
o shit