A A A
logo2




Sed czyli edytor strumieniowy. Wykonuje on pewne akcje z danymi wejściowymi.



Wywoływanie skryptu


Skrypt może zostać wywołany na dwa sposoby:

Wpisując bezpośrednio w linii poleceń treść skryptu oraz podając nazwę pliku z danymi:

owi@laptop:~$ sed 'tresc skryptu' dane

dane – plik z danymi



Zapisując skrypt w osobnym pliku:

owi@laptop:~$ sed -f skrypt dane

skrypt- plik ze skryptem
dane – plik z danymi



Budowa skryptu



adres polecenie [argumenty]

Część adres odpowiada za to, która linia będzie brana pod uwagę. Adres można podać za pomocą liczb (np. 3 ) lub cytując słowa zapisane w konkretnej linii (np. /bbb/, gdzie bbb to wyrażenie regularne, będące wzorcem do dopasowania). Polecenie określa co ma się zmienić. Natomiast argumentem może być np. tekst.


i- dopisuje tekst podany jako argument przed wybraną linią

Przykład 1

treść skryptu:


owi@laptop:~$ sed '3i ala ma kota' dane

Przed trzecią linia zostanie dopisany tekst „ala ma kota”.



a- dopisuje tekst podany jako argument po wybranej linii

Przykład 2

treść skryptu:


owi@laptop:~$ sed '6a ala ma kota' dane

Po szóstej linii zostanie dopisany tekst „ala ma kota”.



p- wyświetla podaną linię

Przykład 3



owi@laptop:~$ sed -n '4p' dane

Zostanie wyświetlona jedynie 4 linia.



Przykład 4



owi@laptop:~$ sed -n '4,6p' dane

Zostaną wyświetlone linie od 4 do 6.



Przykład 5



owi@laptop:~$ sed -n '/ala/,/kasia/p' dane

Zostaną wyświetlone wszystkie linie pomiędzy tą zaczynającą się na ala a tą na kasia.



Przykład 6



owi@laptop:~$ sed -n '4,6!p' dane

Wykrzyknik przed literą p oznacza negacje. Nie zostaną więc wyświetlone linie od 4 do 6.

UWAGA!
Aby uruchomić skrypt z poleceniem p w sposób drugi (tzn. sed -f skrypt dane) należy jeszcze przed parametrem -f dodać -n.




q– wyświetla linie aż do podanej i kończy skrypt

Przykład 7



owi@laptop:~$ sed '3q' dane

Zostaną wyświetlone jedynie pierwsze 3 linie.



d – nie wyświetla wskazanych linii

Przykład 8



owi@laptop:~$ sed '3,$d' dane

Nie wyświetli linii od 3 do ostatniej, ponieważ $ do symbolizuje ostatnią linię.



s– zamienia podana linie na inną

Przykład 9



owi@laptop:~$ sed 's/ala/kasia/g' dane

Linia ze slowem ala zostanie zamieniona na linie ze słowem kasia. Litera g oznacza, że stanie się to w calym pliku a nie tylko w pierwszej napotkanej linii.





Autor: Aleksandra Przybyło
aleksandraprzybylo@gmail.com