Szukaj

Rss Posts

Rss Comments

Login

 

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.

Podziel się z innymi: Te ikonki pozwalają łatwo podzielić się tym artykułem z innymi za pośrednictwem serwisów społecznościowych
  • Wykop
  • Gwar
  • Technorati
  • Digg
  • del.icio.us
  • NewsVine
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (1 votes, average: 5 out of 5)
Loading ... Loading ...


2 Comments

Add your comment

  1. Tybek
    Apr 19 at 19:48

    >najprostRZym
    LOL :)

  2. pukas
    Apr 20 at 12:47

    o shit ;)

Post a comment