Przetestujemy teraz funkcjonowanie sed używając do tego celu tego samego pliku dataplik którego zawartość drukujemy powtórnie poniżej.
Nazwa symbol Imię i nazwisko Liczba Plan liczba liczba
regionu regionu dyrektora per. oddziałów w % towarów personelu
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Zadanie 1.
$ sed ’/Preg/p’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: edytor sed z definicji wyświetla wszystkie linie na ekranie i powtarza edycje tych linii które zawierają wyselekcjonowany ciąg znaków; w tym przypadku „Preg”
Zadanie 2.
$ sed -n ’Preg/p’ dataplik
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wyjaśnienie: użycie w tym przykładzie opcji -n powoduje, że na ekranie wyświetlają się tylko linie zawierające ciąg znaków „Preg”
Zadanie 3.
$ sed ‘4d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: Wyświetlone na ekranie zostają wszystkie linie oprócz linii czwartej
Zadanie 4.
$ sed ’3,$d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Wyjaśnienie: Wyświetlone zostają tylko dwie pierwsze linie, ponieważ wzór wskazuje, że wymazujemu wszystkie linie od linii trzeciej do końca pliku na co wskazuje wyrażenie regularne $.
Zadanie 5.
$ sed ’$d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Wyjaśnienie: Wymazanie ostatniej linii w pliku. Wyrażenie regularne $ symbolizuje właśnie tą linie, wyświetlane są wszystkie linie oprócz linii wymazanej
Zadanie 6.
$ sed ’/Preg/d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: Wszystkie linie zawierające ciąg znaków „Preg” zostały wymazane. Reszta linii jest wyświetlona na ekranie
Zadanie 7.
$ sed ‘/KA/p’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 8.
$ sed -n ‘/KA/p’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 9.
$ sed ‘2d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 10.
$ sed ‘5,$d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 11.
$ sed ‘/KA/d’ dataplik
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 12.
$ sed ‘2,3d’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 13.
$ sed ‘s/KA/KT/’ dataplik
Kregkato KT..................AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: polecenie s pozwala zamienić jeden ciąg znaków na drugi, w tym wypadku zamieniamy ciąg znaków „KA” na „KT”, ponieważ brakuje funkcji g zmiana dokonuje się tylko w pierwszej linii gdzie występuje „KA”
Zadanie 14.
$ sed ‘s/KA/KT/g’ dataplik
Kregkato KT..................AB Kowalski 23 .98. \3\ 88
Kregkato KT..................Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie : W tym wypadku użyliśmy opcji g i zmiana została dokonana we wszystkich liniach gdzie występuje ciąg znaków „KA”
Zadanie 15.
$ -n ‘s/^Cre/Ine/p’ dataplik
Inegcent CE Jola Krul 19 .74 \1\ 65
Inegcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: wyrażenie s/^Cre/Ine/ wskazuje, że poszukujemy linii, które zaczynają się ciągiem znaków „Cre” i chcemy je zastąpić ciągiem znaków „Ine” , opcja -n wskazuje, że wyświetlone zostają tylko linie wyselekcjonowane z pliku.
Zadanie 16.
$ sed -n ‘/^Pre/p’ dataplik
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 17.
$ sed -n ‘s/Krul/Wrak/gp’ dataplik
Cregcent CE Jola Wrak 19 .74 \1\ 65
Wyjaśnienie: wyrażenie s/Krul/Wrak/ zastępuje w liniach gdzie znajduje się ciąg znaków „Krul” przez ciąg znaków „Wrak”
Zadanie 18.
$ sed -n ‘s/\Pa\)wlak/\1liwoda/p’ dataplik
Kregkato KA Piotr Paliwoda 23 .98. \3\ 88
Wyjaśnienie: wyrażenie regularne użyte w poleceniu wskazuje, że poszukujemy ciągu znaków zaczynający się od Pa , którego umieszczony jest w tagu 1 i ciąg następujący po nim zostanie zastąpiony przez ciąg znaków oznaczony dalej tagiem \1 czyli „liwoda”
Zadanie 19.
$ sed -n ’5,/^Preg/p dataplik
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wyjaśnienie: Wyświetlenie linii zacząwszy od linii 5 aż do linii zawierającej ciąg znaków „Preg”
Zadanie 20.
$ sed -n ’s#88#11#’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\...............11
Kregkato KA Piotr Pawlak 23 .98. \3\...............11
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: Znak # po poleceniu s wskazuje, że zamieniamy pierwszą liczbę na drugą
Zadanie 21.
$ sed -e ’1,3d’ -e ’/Malina/Gruszka/’ dataplik
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Gruszka.......25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: dwukrotne użycie opcji -e wskazuje że wykonujemy dwa polecenia, pierwsze polecenie wymazuje wiersze od 1 do 3, drugie natomiast zastępuje ciąg znaków „Malina” przez „Gruszka”
Zadanie 22.
$ sed -e ’/^Mregmazu /a\\Zmiana regul w pakowaniu butelek’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Zmiana regul w pakowaniu butelek
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: polecenie a dorzuca do wiersza znak lub ciąg znaków ; w tym wypadku po wyszukaniu linii zaczynającej się (^) od ciągu Mregmazu, dorzucamy napis : „Zmiana reguł w pakowaniu butelek”
Zadanie 23.
$ sed ’/Mregazmu/i\Nowy Region\ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Nowy Region
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: pozostawiamy czytelnikowi
Zadanie 24.
$ sed ’5q’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Wyjaśnienie: Po wyświetleniu pięciu linii edytor sed przestaje działać (funkcja q)
Zadanie 25.
$ sed ’/Wrak/ { s/Wrak/Gorki/;q; }’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Gorki..........25 .45. \2\ 77
Wyjaśnienie: Kiedy edytor sed napotka linię z ciągiem znaków „Wrak” to ciąg ten jest zastąpiony przez „Gorki” a edytor sed przestaje działać
Zadanie 26.
$ sed -e ’/Cregcent/h’ -e ’$G’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Marian Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Cregcent CE Jola Krul 19 .74 \1\ 65
Wyjaśnienie: W tym przykładzie wykonujemy dwa polecenia (opcja –e), pierwsze polecenie selekcjonuje linie która zawiera ciąg znaków oraz kopiuje linie w której ten ciąg znaków się znajduje do specjalnego bugora, drugie polecenie natomiast, linie z bugora umieszcza na końcu pliku (polecenie $G)
Zadanie 27.
$ sed -e ’/Piotr/h’ -e ’/Marian/x’ dataplik
Kregkato KA AB Kowalski 23 .98. \3\ 88
Kregkato KA Piotr Pawlak 23 .98. \3\ 88
Pregpod PO Krzysztof Wrak 25 .45. \2\ 77
Cregcent CE Jola Krul 19 .74 \1\ 65
Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85
Pregpod PO Zygmunt Malina 25 .45. \2\ 54
Wregwielko WK Piotr Kluska 35 .98. \4\ 91
Greggda GD DA Polak 58 .69. \9\ 87
Cregcent CE Mariusz Poll 19 .54. \1\ 25
Wyjaśnienie: W tym przykładzie wykonujemy także dwa polecenia (opcja –e), pierwsze polecenie selekcjonuje linie która zawiera ciąg znaków „Piotr” drugie polecenie natomiast, wyselekcjonowany ciąg znaków Marian zastępuje przez Piotr ; tą funkcje wykonuje polecenie x.
Zadanie 28.
$ sed ‘s/\\[0-9]\\/\*[0-9]\*/p’ dataplik
Kregkato KA AB Kowalski 23 .98. *3* 88
Kregkato KA Piotr Pawlak 23 .98. *3* 88
Pregpod PO Krzysztof Wrak 25 .45. *2* 77
Cregcent CE Jola Krul 19 .74 *1* 65
Mregmazu MA Urszula Kropiuk 14 .54. *5* 85
Pregpod PO Zygmunt Malina 25 .45. *2* 54
Wregwielko WK Marian Kluska 35 .98. *4* 91
Greggda GD DA Polak 58 .69. *9* 87
Cregcent CE Mariusz Poll 19 .54. *1* 25
Wyjaśnienie: pozostawiamy czytelnikowi
Wyrażenie Regularne Rozdział 8.4 Darmowy kurs Linux