Edytory tekstu 71
Operacja „znajdź i zastąp” - edytor sed
Program sed służy do szybkiej edycji tekstu wprowadzanego przez użytkownika, sed udostępnia ponad dwadzieścia poleceń edycyjnych i umożliwia zastosowanie wyrażeń regularnych (podobnych do wyrażeń programu egrep z podrozdziału „Przeszukiwanie plików tekstowych” w rozdziale 3, „Linuksowy system plików”).
sed może zostać wykorzystany do szybkiego wprowadzania globalnych zmian w dokumentach tekstowych bez potrzeby uruchamiania edytora pełnoekranowego. Przykładowo, jeśli niefortunny bohater poniższego tekstu nie nazywa się Kowalski lecz Malinowski, konieczne będzie wprowadzenie poprawek do wszystkich wystąpień jego nazwiska:
Jak już wcześniej nadmieniliśmy, pan Kowalski nie odpowiada na nasze listy i ignoruje wszelkie podejmowane przez nas próby rozwiązania problemu zadłużenia. Pan Kowalski wie, że próbowaliśmy nawiazac z nim kontakt; nie doczekaliśmy sie jednak żadnej reakcji z jego strony, nawet po zajęciu przez nas wzmiankowanej nieruchomości. Miejsce pobytu pana Kowalskiego pozostaje nieznane; ostatni raz był on widziany na wyspie Sw. Jana.
Opcja s polecenia sed umożliwia odszukanie wszystkich wystąpień słowa „Kowalski” i zamianę ich na „Malinowski”:
# sed s/Kowalski/Malinowski/ Craport.txt
Jak juz wcześniej nadmieniliśmy, pan Malinowski nie odpowiada na nasze listy i ignoruje wszelkie podejmowane przez nas próby rozwiązania problemu zadłużenia. Pan Malinowski wie ze próbowaliśmy nawiazac z nim kontakt; nie doczekaliśmy sie jednak żadnej reakcji z jego strony, nawet po zajęciu przez nas wzmiankowanej nieruchomości. Miejsce pobytu pana Malinowskiego pozostaje nieznane; ostatni raz był on widziany na wyspie Sw. Jana.
Jak widać, wszyscy „Kowalscy” zostali zastąpieni „Malinowskimi”, a gotowy tekst został wyświetlony na ekranie. Jeśli chcemy zapisać go w pliku, musimy skorzystać z operatora >:
# sed s/Kowalski/Malinowski/ <raport.txt >nowy_raport.txt
Flaga -f pozwala na wczytanie listy wymaganych poprawek z podanego pliku.
Plik skryptowy sed
1. Jeśli chcesz wprowadzić do przetwarzanego tekstu szereg niezależnych poprawek, skorzystaj z pliku skryptowego sed. W ramach ćwiczenia uruchom swój ulubiony edytor i wprowadź do pliku o nazwie personel. txt tekst:
Od teraz wszyscy pracownicy musza zgłaszać sie telefonicznie, zgodnie z lista wymagań. W ramach tejże listy wszystkie omawiane tu regulacje dotyczą każdego pracownika przedsiębiorstwa. Wszyscy pra-