Ćwiczenie 4 Edytory w systemie Linux – edytor SED
Transkrypt
Ćwiczenie 4 Edytory w systemie Linux – edytor SED
Ćwiczenie 4 Edytory w systemie Linux – edytor SED 1. Cel ćwiczenia Celem ćwiczenia jest poznanie popularnych edytorów plików tekstowych w systemie Linux (UNIX). Zaawansowane przetwarzanie tekstu umożliwia edytor strumieniowy SED. 2. Przygotowanie do ćwiczenia • • • możliwości programu grep w zakresie zaawansowanego przetwarzania tekstu, wyrażenia regularne, inne edytory tekstowe w środowisku Linux. 3. Wprowadzenie Edytor strumieni sed (ang. stream editor) jest jednym z projektów GNU realizowanych przez Free Software Foundation. Edytor sed służy nie do tworzenia, lecz do modyfikacji istniejących już plików tekstowych. Obszerna dokumentacja edytora dostępna jest w hipertekstowym formacie GNU Texinfo. Aby z niej skorzystać, należy wydać polecenie: info sed Istnieje również strona podręcznika systemowego, którą otwiera się poleceniem: man sed Z edytora sed można korzystać na dwa sposoby: • gdy reguły filtrowania nie są zbyt złożone to uruchomienie edytora odbywa się jednym poleceniem wpisanym do wiersza poleceń powłoki (sposób zalecany): sed adres | komenda | argumenty plik_źródłowy > plik_docelowy sed adres | komenda | argumenty plik_źródłowy | less • polega na wykorzystaniu dedykowanego skryptu (ang. script-file): sed -f skrypt_sed plik_źródłowy > plik_docelowy Połączenie obydwu w/w sposobów przyjmuje postać: sed adres | komenda | argumenty -f skrypt_sed plik_źródłowy > plik_docelowy Wyższa Szkoła Gospodarki w Bydgoszczy Instytut Informatyki Stosowanej Laboratorium systemów operacyjnych (2010) Opcje uruchamiania edytora: -V -h -e -f -n p wyświetlenie informacji o wersji programu, wyświetlenie skróconego opisu pomocy, opcja umieszczona przed każdym łańcuchem będącym poleceniem edycyjnym, o ile w wierszu poleceń powłoki wpisano poleceń edycyjnych więcej niż jedno, opcja skazująca na użycie pliku z poleceniami edycyjnymi – skryptu, opcja domyślnie zapobiegająca automatycznemu wysyłaniu na standardowe wyjście zawartości przetworzonego bufora roboczego, zezwolenie na wysłanie na standardowe wyjście. 4. Tworzenie pliku ćwiczeniowego Przy wykorzystaniu edytora vi stwórz następujący plik ćwiczeniowy: Pierwszy wiersz Drugi wiersz Trzeci wiersz ABCD 123 1234 ABCD Ostatni wiersz 5. Praca z edytorem sed Wykonaj poniższe przykłady: Program sed bez argumentów wyświetla cały plik: sed -n 'p' plik Wyświetlenie 3-go wiersza pliku: sed –n '3p' plik Wyświetlenie od 2 do 4 wiersza pliku: sed –n '2,4p' plik Wyświetlenie zakresu rozpoczynającego się od Drugi a kończący na 123: sed –n '/Drugi/,/123$/p' plik Wyświetla pierwszy wiersz (q – kończy pracę edytora po napotkaniu podanego adresu): sed q plik Wyświetla 3 pierwsze wiersze pliku: sed 3q plik Wyższa Szkoła Gospodarki w Bydgoszczy Instytut Informatyki Stosowanej Laboratorium systemów operacyjnych (2010) sed '$!q' plik Wyświetla ostatni wiersz pliku: sed -n '$p' plik Wyświetla wiersze zawierające łańcuch ABCD: sed -n '/ABCD/p' plik Wyświetla wiersz nie zawierające łańcuch ABCD (d – usuń wskazane wiersze): sed -n '/ABCD/!p' plik sed -n '/ABCD/d' plik Usuwa wszystkie wiersze które nie należą do do 1-3: sed -n '1,3!p' plik Wyświetla wiersze zaczynające się od ABCD i kończące na ABCD: sed -n '/^ABCD/p' plik sed -n '/ABCD$/p' plik Wstawienie ciągu znaków na końcu każdej linii oraz wyświetlenie pliku: sed 's/$/####/' plik s - ang. substitute Wstawienie ciągu znaków na końcu wiersza kończącego się na „ABCD”: sed '/ABCD$/s/$/####/' plik Wstawienie ciągu znaków na początku każdej linii: sed 's/^/####/' plik Wstawienie ciągu znaków na początku 3-go wiersza: sed '3s/^/####/' plik Wstawienie ciągu znaków na początku każdego wiersza zawierającego łańcuch „3”: sed '/3/s/^/####/' plik Dopisanie na początku każdego wiersza “### ” oraz na końcu „@@@” w potoku oraz zapisanie w nowym pliku: sed 's/^/###/' plik | sed 's/$/@@@/' - > nowyplik sed 's/^/###/; s/$/@@@/' plik > nowyplik Aby zastosować więcej poleceń edycyjnych w jednym wierszu każde z nich poprzedzamy „–e”: sed -e 's/^/###/' -e 's/$/@@@/' plik > nowyplik Wyższa Szkoła Gospodarki w Bydgoszczy Instytut Informatyki Stosowanej Laboratorium systemów operacyjnych (2010) Usunięcie 1 wiersza: sed '1d' plik Usunięcie ostatniego wiersza: sed '$d' plik Usunięcie wierszy 2 do 4: sed '2,4d' plik Usunięcie wierszy 2 i 4: sed '2d; 4d' plik Usunięcie pustych wierszy: sed '/^$/d' plik 6. Literatura [1] [2] [3] [4] Dale Dougherty, Arnold Robbins: "sed i awk", Wydawnictwo HELION, Gliwice 2002, Linda Lamb, Arnold Robbins: "Edytor vi", Wydawnictwo HELION, Gliwice 2001, pl.wikipedia.org/wiki/Sed/, http://sed.sourceforge.net, Wyższa Szkoła Gospodarki w Bydgoszczy Instytut Informatyki Stosowanej Laboratorium systemów operacyjnych (2010)