Edytor sed

(ang. stream editor) czyli edytor strumienia linii jest narzędziem informatycznym używanym do wyszukiwania  - wg wzorca opartego zazwyczaj na regułach zdefiniowanych w wyrażeniach regularnych – linii w pliku, do ich zmieniania wyświetlania na ekranie czy też skierowywania rezultatów manipulacji do nowego pliku. Ogólny wzorzec polecenia sed wygląda następująco:

sed  opcja  ‘wyszukiwany wzorzec’  nazwa_pliku

 

Trzeba pamiętać, że edytor sed pracuje tak jak każdy inny edytor z jednym bardzo ważnym wyjątkiem: pobiera polecenia w oparciu o nie przetwarza plik, ale zmiany nie są zapisywane do oryginalnego pliku. Zmodyfikowane dane przesyłane są na standardowe wyjście jako nowy plik. Dlatego też sed jest często używany jako filtr.

sed posiada następujące – główne- polecenia funkcje i opcje, których znaczenie przedstawiamy poniżej:

Opcje Funkcje

-e pobierz polecenie edycji z wiersza polecenia

-n nie wyświetlaj wynikowych wierszy (tzw. tryb cichy)

-f pobierz polecenia z pliku

 

Podajmy przykład:

$  sed  -n ‘polecenia edycji’  [ plik wejściowy  ]

$ sed –n  [ -e polecenia edycji  ] [ -f  polecenia zawarte w skrypcie ] [plik wejściowy ]

Można zauważyć, że w pierwszym przypadku opcja  -e nie jest potrzebna, ponieważ podane jest tylko jedno pole specjalne . Jeżeli chce się użyć więcej niż jednego polecenia wtedy skorzystać właśnie z opcji  -e lub  opcji  -f. Polecenia edytora  sed umieszczamy w apostrofach, ponieważ wiele z nich – jak się przekonamy – zawiera znaki specjalne i wyrażenia regularne. Zasada działania edytora  sed jest następująca. Edytor pobiera wiersz z pliku i stosuje do niego wszystkie polecenia edycyjne w kolejności ich wpisywania.

 

Polecenie  Opis

a dołącz tekst w pliku wyjściowym

c zastąp wybrane wiersze nowym tekstem

d usuń wiersze z pliku i przejdź do następnego wiersza

usuwane wiersze nie są wyświetlane

i\ wstaw tekst w pliku wyjściowym -

p drukuj określone wiersze z pliku

(może być używane do wybrania wierszy z pliku)

h skopiuj bieżący wiersz do bufora

q wyście z edytora sed

r wczytywanie wierszy z pliku i wyświetlanie ich na ekranie

! zaprzeczenie liniom wyszukiwanym przez wzorzec

l wyświetl wybrane wiersze

S zastąp pierwszy napis drugim

 

Funkcje zamiany (znaczniki)

g pominięcie znacznika  g oznacza zastąpienie tylko pierwszego wystąpienia wzorca w wierszu

w zapisz bieżący wiersz do pliku

x zamień bieżący wiersz i zawartość bufora

y zastąp wszystkie znaki z pierwszego argumentu znakami z drugiego

 

Wybieranie wierszy przy pomocy polecenia  sed towarzyszy opcja  -n , która unieruchamia funkcje przesyłania na wyjście (wyświetlanie na ekranie) każdego wiersza i pozwala na przesyłanie tylko wierszy wybranych za pomocą polecenia p. W poniższym przykładzie do pliku nowy_plik1 przesyłane są wiersze o numerach od 10 do 20 z pliku plik1.

$ sed  -n ’20,30p’  plik1  >  nowy_plik1

 

Jak widzimy poleceń jest bardzo wiele, a najlepszym sposobem na rozpoczęcia zrozumienia ich działania i powiązania między poleceniami, funkcjami i opcjami, jest wstępne wyjaśnienie funkcjonowania edytora sed na przykładach. Jedna z najprostszych – a jednocześnie najczęściej używanych – operacji edytora sed jest zastąpienie jednego łańcucha znaków innym.

 

 

Wyrażenia Regularne Rozdział 8.3 Darmowy kurs Linux - Edytor sed