Ć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)

Podobne dokumenty