[ Pobierz całość w formacie PDF ]
Wiersze zostają natychmiast zapisane, polecenie nie ma wpływu na wynik działania kolejnych poleceń.
Ponadto polecenie p nadpisuje opcję -n użytą w wierszu poleceń powłoki.
q (ang. quit) Polecenie q powoduje natychmiastowe zakończenie działania narzędzia sed.
r plik (ang. read) To polecenie odczytuje zawartość wskazanego pliku i dołącza ją do aktualnie wy-
branego wiersza. Po poleceniu r musi znajdować się pojedyncza spacja, a następnie nazwa pliku.
s (ang. substitute) Polecenie s w narzędziu sed działa podobnie jak w edytorze vim (patrz rozdział 6.)
i posiada następującą składnię:
[adres[,adres]] s/wzorzec/ci g-zast puj cy/[g][p][w plik]
Wzorzec to wyrażenie regularne (patrz dodatek A), które tradycyjnie jest umieszczone pomiędzy
ukośnikami (/); ogranicznikiem może być dowolny znak poza spacją i NEWLINE. Ci g-zast puj cy
znajduje się tuż za drugim ogranicznikiem i musi być zakończony takim samym znakiem ogranicza-
jącym. Ostatni (trzeci) ogranicznik jest wymagany. Ci g-zast puj cy może zawierać znak amper-
sand (&), który sed zastąpi dopasowanym wzorcem. O ile nie użyjesz opcji g, polecenie s zastąpi jedynie
pierwsze wystąpienie wzorca w każdym wybranym wierszu.
Opcja g (ang. global) powoduje, że polecenie s zastępuje wszystkie nienakładające się wystąpienia
wzorca w wybranych wierszach.
Kup książkę Poleć książkę
Podstawy edytora 633
Opcja p (ang. print) powoduje, że narzędzie sed przekazuje do standardowego wyjścia wszystkie
wiersze, w których zostały przeprowadzone operacje zastąpienia.
Z kolei opcja w (ang. write) jest podobna w działaniu do opcji p, ale przekazuje dane wyjściowe do
pliku. Po opcji w musi znajdować się pojedyncza spacja, a następnie nazwa pliku.
w plik (ang. write) Działanie tego polecenia jest podobne do polecenia p, ale dane wyjściowe są prze-
kazywane do pliku. Po opcji w musi znajdować się pojedyncza spacja, a następnie nazwa pliku.
STRUKTURY STERUJCE
! (NOT) Powoduje, że narzędzie sed stosuje polecenie znajdujące się w tym samym wierszu wzglę-
dem wszystkich wierszy, które nie zostały wskazane przez adres. Na przykład polecenie 3!d powo-
duje usunięcie wszystkich wierszy oprócz trzeciego, natomiast $!p wyświetla wszystkie wiersze poza
ostatnim.
{} (zgrupowanie poleceń) Kiedy grupę poleceń umieścisz w nawiasie klamrowym, pojedynczy adres
lub para adresów wskazują wiersze, na których będą działać polecenia danej grupy. Do rozdzielenia
poleceń w pojedynczym wierszu używany jest średnik (;).
Polecenia gałęzi Strona sed info w wersji GNU narzędzia określa polecenia gałęziowe jako polece-
nia dla guru narzędzia sed i sugeruje, że mogą być one przydatne podczas tworzenia programów w
awk lub Perlu.
:etykieta Wskazuje położenie w programie sed. Etykieta jest użyteczna jako cel dla poleceń gałęzio-
wych b i t.
b [etykieta] Bezwarunkowo przekazuje kontrolę do etykiety. Jeżeli etykieta nie zostanie podana,
pomijane są pozostałe polecenia dla bieżącego wiersza danych wejściowych i następuje wczytanie
kolejnego.
t [etykieta] Przekazuje kontrolÄ™ do etykiety tylko wtedy, gdy wykonanie polecenia s dla ostatnio
odczytanego wiersza danych wejściowych zakończyło się powodzeniem (gałąz warunkowa). Jeżeli
etykieta nie zostanie podana, pomijane są pozostałe polecenia dla bieżącego wiersza danych wej-
ściowych i następuje wczytanie kolejnego.
MIEJSCE PRZECHOWYWANIA
Przedstawione dotąd polecenia działają w miejscu wzorca, czyli w buforze początkowo przechowują-
cym wiersz danych wejściowych odczytany przez narzędzie sed. Miejsce przechowywania może prze-
chowywać dane podczas ich przetwarzania w miejscu wzorca, to jest po prostu bufor tymczasowy.
Dopóki nie umieścisz w nim danych, bufor tymczasowy pozostaje pusty. W tej sekcji przedstawiono
polecenia pozwalające na przenoszenie danych pomiędzy miejscami wzorca i przechowywania.
g Kopiuje zawartość miejsca przechowywania do miejsca wzorca. Początkowa zawartość miejsca
wzorca zostaje nadpisana.
G Dołącza do miejsca wzorca znak NEWLINE i zawartość miejsca przechowywania.
h Kopiuje zawartość miejsca wzorca do miejsca przechowywania. Początkowa zawartość miejsca
przechowywania zostaje nadpisana.
H Dołącza do miejsca przechowywania znak NEWLINE i zawartość miejsca wzorca.
x Wymienia zawartości miejsc wzorca i przechowywania.
Kup książkę Poleć książkę
634 ROZDZIAA 15. EDYTOR SED
PRZYKAADY
Plik danych lines Przedstawiony poniżej przykład używa pliku lines jako danych wejściowych:
$ cat lines
Wiersz pierwszy.
Drugi wiersz.
Trzeci.
To jest wiersz czwarty.
Pi ty.
To jest szóste zdanie.
To jest wiersz siódmy.
Ósmy i ostatni.
Jeżeli nie zdecydujesz inaczej, narzędzie sed przekazuje wszystkie wiersze wybrane i niewybrane
do standardowego wyjścia. Kiedy użyjesz opcji -n w wierszu poleceń powłoki, do standardowego
wyjścia narzędzie sed przekaże jedynie określone wiersze, na przykład wybrane przez polecenie p.
Poniższe polecenie powoduje wyświetlenie wszystkich wierszy pliku lines, które zawierają słowo
wiersz zapisane małymi literami. Ponadto ponieważ nie została użyta opcja -n, to narzędzie sed wy-
świetli wszystkie wiersze danych wejściowych. Dlatego też wiersze zawierające słowo wiersz będą
wyświetlone dwukrotnie.
$ sed '/wiersz/ p' lines
Wiersz pierwszy.
Drugi wiersz.
Drugi wiersz.
Trzeci.
To jest wiersz czwarty.
To jest wiersz czwarty.
Pi ty.
To jest szóste zdanie.
To jest wiersz siódmy.
To jest wiersz siódmy.
Ósmy i ostatni.
W powyższym poleceniu jako adresu użyto wyrażenia regularnego /wiersz/, które ma postać pro-
stego ciągu tekstowego. Narzędzie sed wybrało wszystkie wiersze zawierające dopasowany wzorzec.
Następnie polecenie p wyświetliło wszystkie wybrane wiersze.
W poniższym poleceniu użyto opcji -n, więc narzędzie sed wyświetliło jedynie wybrane wiersze:
$ sed -n '/wiersz/ p' lines
Drugi wiersz.
To jest wiersz czwarty.
To jest wiersz siódmy.
W kolejnym przykładzie narzędzie sed wyświetla fragment pliku wybrany na podstawie numerów
wierszy. Polecenie p wyświetla więc wiersze od trzeciego do szóstego.
$ sed -n '3,6 p' lines
Trzeci.
To jest wiersz czwarty.
Pi ty.
To jest szóste zdanie.
Następny przykład zawiera polecenie q powodujące, że narzędzie sed wyświetli jedynie początek pliku.
W tym przypadku sed wyświetla pierwsze pięć wierszy pliku lines, czyli skutek działania jest dokładnie
taki sam jak polecenia head -5 lines.
$ sed '5 q' lines
Wiersz pierwszy.
Drugi wiersz.
Trzeci.
To jest wiersz czwarty.
Pi ty.
Kup książkę Poleć książkę
Przykłady 635
[ Pobierz całość w formacie PDF ]