sed (program) - Google

sed (program)

Z Wikipedii

(Przekierowano z Sed (Unix))
Skocz do: nawigacji, szukaj

sed (ang. Stream EDitor – edytor strumieniowy) – program służący do przetwarzania plików tekstowych. Mimo prostoty, program dysponuje dużymi możliwościami.

sed jest filtrem – pobiera dane w postaci wierszy tekstu ze standardowego wejścia, przetwarza je zgodnie z poleceniami podanymi w wierszu poleceń lub zapisanymi w pliku i przesyła wyniki operacji na standardowe wyjście. Cechą charakterystyczną seda jest to, że wykonuje on na danym wierszu wszystkie polecenia, jakie są do wykonania. Ponieważ przetwarzanie odbywa się wiersz po wierszu, sed nie ma praktycznie żadnych ograniczeń na wielkość przetwarzanego pliku.

Sed nadaje się szczególnie do przetwarzania plików o pewnej strukturze. Napisany został pierwotnie przez Lee E. McMahona dla systemu UNIX w roku 1973, w chwili obecnej dostępny jest praktycznie dla każdego systemu operacyjnego, który dysponuje wierszem poleceń.

Zestaw poleceń programu sed wzorowany jest na poleceniach programu ed i większość z nich działa podobnie, jeśli uwzględni się specyfikę seda. Na przykład, polecenie 25d działa w sedzie następująco: sprawdza, czy bieżący wiersz jest 25 wierszem przetwarzanego pliku i jeśli tak, to nie kieruje go na wyjście ("usuwa" go), a jeśli nie, wiersz pojawi się na wyjściu. Jednak nie wszystkie polecenia eda mogły zostać zaimplementowane, w szczególności te, które odpowiedzialne są za kopiowanie lub przenoszenie tekstu. Zamiast tego, sed dysponuje buforem, który pozwala przechować wybrane wiersze i zestawem poleceń do manipulacji nimi. Na przykład, polecenie eda 25t76 (skopiuj wiersz 25 do 76) można zrealizować w sedzie jako dwa polecenia: 25h; 76g – przechowaj wiersz 25 w buforze i wstaw po napotkaniu wiersza 76.

Oto typowy przykład wywołania seda:

sed -e 's/dobry/zły/g' plik_wejściowy > plik_wyjściowy

s oznacza zastępowanie, g globalne, w całym wierszu. Po pierwszym ukośniku pojawia się wyrażenie regularne, opisujące tekst, który ma być wyszukany, po drugim wyrażenie, które ma zastąpić wyszukany tekst. Polecenie zastępowania jest najczęściej wykonywanym poleceniem seda.

Przykład wywołania seda z dołączonym zewnętrznym plikiem poleceń polecenia.sed:

sed -f polecenia.sed plik_wejściowy > plik_wyjściowy

Następujące wywołanie usuwa z pliku wszystkie puste wiersze, lub te, które zawierają wyłącznie spacje:

sed -e '/^\ *$/d' plik_wejściowy

Przykład ten wykorzystuje kilka metaznaków używanych w wyrażeniach regularnych seda:

  • ^ – pasuje do poczÄ…tku wiersza
  • $ – pasuje do koÅ„ca wiersza
  • . – pasuje do dowolnego znaku
  • * – pasuje do dowolnej (również zerowej) liczby wystÄ…pieÅ„ poprzedzajÄ…cego znaku
  • [ ] – pasuje do dowolnego znaku wewnÄ…trz nawiasów [ ]

De facto sed jest prostym językiem programowania i mimo że nie pozwala na korzystanie z żadnych zmiennych, dopuszcza jedynie proste instrukcje skoku, to jest językiem zupełnym w sensie Turinga.

sed wyewoluował z grepa, programu wyszukującego frazy tekstowe w plikach i był jednym z pierwszych programów uniksowych pozwalających na edycję plików z wiersza poleceń, a jego pojawienie się stanowiło impuls do powszechnego używania wyrażeń regularnych. Podobny w idei działania awk może być traktowany jako następca seda. Wraz z awkiem, sed uważany jest za prekursora języka Perl. W szczególności, s/// jest poleceniem Perla.

Mimo sędziwego wieku sed nadal jest używany i rozwijany ze względu na szybkość działania. W specyficznych operacjach bije na głowę zarówno AWKa jak i Perla. Ciekawym rozwinięciem seda jest GNU sed pozwalający na bezpośrednią zmianę przetwarzanego pliku i Super-sed, którego składnia jest zgodna ze składnią Perla.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne


4000 GB w zsypie
Serwer, z którego nielegalnie można było pobrać 4000 gigabajtów nielegalnych gier, filmów, muzyki i programów zabezpieczyli policjanci z KWP. Administratorowi i właścicielowi serwera grozi do pięciu lat więzienia.
Społecznościowy antywirus?
Czy możliwe jest wykorzystanie potencjału społeczności internetowych, lub użytkowników sieci do ochrony komputera przed zagrożeniami płynącymi z sieci? Producent oprogramowania antywirusowego, Panda Security, właśnie takie rozwiązania planuje wprowadzić w swoich najnowszych produktach.
Mozilla aktualizuje Thunderbird'a
W ostatnią środę Mozilla udostępniła na swoich serwerach najnowszą wersję programu pocztowego Thunderbird 2.0.0.16, wzbogaconą o dziewięć zasadniczych poprawek.
Internetowy tablet z Firefoksem
Michael Arrington planuje stworzyć stylowy tablet, który służyć ma wyłącznie do surfowania w internecie.
Wielofunkcyjna stacja dokujÄ…ca
Stacje dokujące i huby USB to urządzenia przygotowane z myślą o osobach, którym ciągle brakuje gniazd przyłączeniowych.
Linki: Strona g³ówna