SED(1) Polecenia uzytkownika SED(1)
NAZWA
sed - edytor strumieniowy do filtrowania i przeksztalcania tekstu
SKLADNIA
sed [-V] [--version] [--help] [-n] [--quiet] [--silent]
[-l N] [--line-length=N] [-u] [--unbuffered]
[-E] [-r] [--regexp-extended]
[-e skrypt] [--expression=skrypt]
[-f plik-skryptu] [--file=plik-skryptu]
[skrypt-jesli-brak-innego-skryptu]
[plik...]
OPIS
Sed jest edytorem strumieniowym. Edytor strumieniowy jest uzywany do
wykonywania prostych przeksztalcen tekstu na strumieniu wejsciowym
(pliku lub strumienia z potoku). Sed jest w jakims stopniu podobny do
edytorow przestrzegajacych edycji skryptowych (np. ed), jednak dziala
czyniac tylko jeden przebieg na strumieniu wejsciowym i dlatego jest
znacznie wydajniejszy. Mozliwosc filtrowania tekstu w potoku przez seda
jest cecha, ktora w najwiekszym stopniu wyroznia go sposrod innych
edytorow innego typu.
-n, --quiet, --silent
hamuje automatyczne wypisywanie bufora tekstowego
--debug
opisuje wykonywanie programu
-e skrypt, --expression=skrypt
dodaje skrypt do polecen do wykonania
-f plik-skryptu, --file=plik-skryptu
dodaje zawartosc pliku-skryptu do polecen do wykonania
--follow-symlinks
podaza za dowiazaniami symbolicznymi podczas przetwarzania w
miejscu
-i[PRZYROSTEK], --in-place[=PRZYROSTEK]
edytuje pliki w miejscu (tworzy kopie zapasowa, jesli podano
przyrostek)
-l N, --line-length=N
okresla pozadana dlugosc zawijania wierszy do polecenia l
--posix
wylacza wszystkie rozszerzenia GNU
-E, -r, --regexp-extended
uzywa w skrypcie rozszerzonych wyrazen regularnych (ze wzgledu
na kompatybilnosc z -E z POSIX).
-s, --separate
traktuje pliki jako oddzielne, zamiast jako jeden, ciagly
strumien
--sandbox
dziala w trybie piaskownicy (wylacza polecenia e/r/w).
-u, --unbuffered
laduje minimalna ilosc danych z plikow wejsciowych i oproznia
bufory wyjsciowe znacznie czesciej
-z, --null-data
oddziela wiersze znakiem NUL
--help wyswietla ten tekst i konczy prace
--version
wyswietla informacje o wersji i konczy dzialanie
Jesli nie podano zadnej z opcji -e, --expression, -f ani --file, to
pierwszy argument niebedacy opcja jest interpretowany jako skrypt seda.
Wszystkie pozostale argumenty sa nazwami plikow wejsciowych; jesli nie
podano zadnych, to czytane jest standardowe wejscie.
Strona internetowa GNU sed: . Ogolna
pomoc dotyczaca oprogramowania GNU: .
Zgloszenia bledow prosze wysylac na adres: .
SKLADNIA POLECEN
Jest to zwiezle podsumowanie polecen sed, przeznaczone jako
przypomnienie dla osob znajacych program sed; aby przeczytac pelniejszy
opis konieczne jest siegniecie po inny typ dokumentacji (np. texinfo).
,,Polecenia" nie przyjmujace adresow
: etykieta
Etykieta do polecen b i t.
#komentarz
Komentarz konczy sie wraz ze znakiem nowego wiersza (lub koncem
fragmentu skryptu -e).
} Nawias klamrowy zamykajacy blok { }.
Polecenia z zerem lub jednym adresem
= Wypisuje biezacy numer wiersza
a \
tekst Dolacza (dodaje za) tekst, w ktorym kazdy ewentualny znak nowego
wiersza jest poprzedzony odwrotnym ukosnikiem.
i \
tekst Wstawia (dodaje przed) tekst, w ktorym kazdy ewentualny znak
nowego wiersza jest poprzedzony odwrotnym ukosnikiem.
q [status-zakonczenia]
Natychmiast wychodzi ze skryptu seda bez przetwarzania dalszego
wejscia, z wyjatkiem sytuacji, gdy nie wylaczono automatycznego
wypisywania biezacego bufora tekstowego, ktory bedzie wowczas
nadal wypisywany. Argument statusu zakonczenia jest
rozszerzeniem GNU.
Q [status-zakonczenia]
Natychmiast wychodzi ze skryptu seda bez przetwarzania dalszego
wejscia. Argument statusu zakonczenia jest rozszerzeniem GNU.
r nazwa-pliku
Dolacza (dodaje za) tekst odczytany z nazwy-pliku.
R nazwa-pliku
Dolacza (dodaje za) tekst odczytany z nazwy-pliku. Kazde
wywolanie tego polecenia odczytuje jeden wiersz z pliku. Jest to
rozszerzenie GNU.
Polecenia, ktore przyjmuja zakresy adresow
{ Rozpoczyna blok polecen (ktory konczy sie znakiem } ).
b etykieta
Przechodzi do etykiety; jesli jej nie podano, przechodzi na
koniec skryptu.
c \
tekst Zastepuje wybrane wiersze tesktem, w ktorym kazdy ewentualny
znak nowego wiersza jest poprzedzony odwrotnym ukosnikiem.
d Usuwa bufor tekstowy. Rozpoczyna nowy cykl.
D Jesli wzorzec nie zawiera znaku nowego wiersza, rozpoczyna nowy
zwykly cykl jak gdyby uzyto polecenia d. W przeciwnym razie
usuwa bufor tekstowy az do pierwszego znaku nowego wiersza i
rozpoczyna cykl od nowa z powstalym w ten sposob buforem
tekstowym, bez odczytywania znaku nowego wiersza z wejscia.
h H Kopiuje/dolacza biezacy bufor tekstowy do wewnetrznego schowka.
g G Kopiuje/dolacza wewnetrzny schowek do bufora tekstowego.
l Wypisuje biezacy wiersz w formie ,,wizualnie jednoznacznej".
l szerokosc
Wypisuje biezacy wiersz w formie ,,wizualnie jednoznacznej",
przelamujac go po szerokosc znakow. Jest to rozszerzenie GNU.
n N Czyta/dolacza nastepny wiersz do bufora tekstowego.
p Wypisuje biezacy bufor tekstowy.
P Wypisuje biezacy bufor tekstowy az do jego pierwszego znaku
nowego wiersza.
s/wyrazenie-regularne/zamiennik/
Podejmuje probe dopasowania wyrazenia-regularnego do biezacego
bufora tekstowego. Jesli sie to uda, zastepuje dopasowana czesc
zamiennikiem. Zamiennik moze zawierac znak specjalny &, aby
odniesc sie do dopasowanej czesci bufora tekstowego, oraz
sekwencje specjalne od \1 do \9, aby odniesc sie do odpowiedniej
pasujacej czesci wyrazenia w wyrazeniu-regularnym.
t etykieta
Jesli s/// wykonalo pomyslnie zastapienie od czasu odczytania
ostatniego wiersza wejsciowego oraz ostatniego polecenia t lub
T, przechodzi do etykiety. Jesli nie podano etykiety, przechodzi
do konca skryptu.
T etykieta
Jesli zadne s/// nie wykonalo pomyslnie zastapienia od czasu
odczytania ostatniego wiersza wejsciowego oraz ostatniego
polecenia t lub T, przechodzi do etykiety. Jesli nie podano
etykiety, przechodzi do konca skryptu. Jest to rozszerzenie GNU.
w nazwa-pliku
Zapisuje biezacy bufor tekstowy do nazwy-pliku.
W nazwa-pliku
Zapisuje pierwszy wiersz biezacego bufora tekstowego do
nazwy-pliku. Jest to rozszerzenie GNU.
x Zamienia zawartosc bufora tekstowego i wewnetrznego schowka.
y/zrodlo/cel/
Zamienia znaki w buforze tekstowym, ktore znajduja sie w zrodle,
na odpowiadajace znaki w celu.
Adresy
Polecenia Seda moga:
* nie zawierac adresow - wtedy polecenia sa wykonywane na wszystkich
wierszach wejsciowych;
* zawierac jeden adres - sa wowczas wykonywane na wierszach
wejsciowych pasujacych do tego adresu;
* zawierac dwa adresy - polecenia sa wykonywane na wszystkich
wierszach wejsciowych od pierwszego adresu az do drugiego adresu.
Nalezy odnotowac trzy rzeczy o zakresach adresow:
* skladnia to adres1,adres2 (tzn. adresy sa oddzielone przecinkami);
* wiersz z dopasowanym adresem1 jest zawsze akceptowany, nawet jesli
adres2 wybiera wczesniejszy wiersz;
* jesli adres2 jest wyrazeniem-regularnym, to nie jest testowany w
odniesieniu do wiersza, do ktorego dopasowano adres1.
Po adresie (lub zakresie adresu), a przed poleceniem, mozna wstawic
znak !, ktory powoduje, ze polecenie powinno byc wykonane tylko na
adresie (lub zakresie adresu), ktory nie pasuje.
Obslugiwane sa nastepujace typy adresow:
numer Dopasowuje jedynie wiersz o podanym numerze (zwiekszajacym sie
wraz z kolejnymi plikami, chyba ze podano tez opcje -s).
pierwszy~krok
Dopasowuje co krok wiersz, zaczynajac od wiersza o numerze
pierwszy. Na przyklad "sed -n 1~2p" wypisuje wszystkie
nieparzyste wiersze w strumieniu wejsciowym, a adres 2~5
dopasuje co piaty wiersz, zaczynajac od drugiego. Pierwszy moze
wynosic zero, w takim przypadku sed dziala identycznie, gdyby
wynosil on tyle co krok (jest to rozszerzenie).
$ Dopasowuje ostatni wiersz.
/wyrazenie-regularne/
Dopasowuje wiersze pasujace do wyrazenia regularnego
wyrazenie-regularne. Dopasowanie jest dokonywane w biezacej
przestrzeni dopasowania, ktora mozna zmodyfikowac poleceniem
takim jak ,,s///".
\zwyrazenie-regularnez
Dopasowuje wiersze pasujace do wyrazenia regularnego
wyrazenie-regularne. Za z mozna podstawic dowolny znak.
GNU sed obsluguje rowniez specjalne formy dwuadresowe:
0,adres2
Rozpoczyna w stanie ,,dopasowany pierwszy adres", az do momentu
znalezienia adresu2. Jest to podobne do 1,adres2 , z wyjatkiem
tego, ze gdy adres2 zostanie dopasowany do pierwszego wiersza
wejscia, to forma 0,adres2 bedzie na koncu swojego zakresu,
podczas gdy forma 1,adres2 bedzie wciaz na poczatku swojego
zakresu. Dziala to tylko gdy adres2 jest wyrazeniem regularnym.
adres1,+N
Dopasowuje adres1 do N-tego wiersza znajdujacego sie za adresem1
adres1,~N
Dopasowuje adres1 i wiersze za adresem1 do nastepnego wiersza
wejsciowego, ktorego numer wiersza jest wielokrotnoscia N.
WYRAZENIA REGULARNE
Podstawowe wyrazenia regularne (BRE) okreslone przez POSIX.2 powinny
byc obslugiwane, ale nie sa obslugiwane calkowicie, ze wzgledu na
problemy z wydajnoscia. Sekwencja \n w wyrazeniu regularnym pasuje do
znaku nowego wiersza, podobnie dla wyrazen \a, \t i innych sekwencji.
Opcja -E przelacza w celu korzystania z rozszerzonych wyrazen
regularnych; bylo to obslugiwane juz od wielu lat w GNU sed, a obecnie
jest rowniez objete norma POSIX.
USTERKI
Zgloszenia bledow prosze wysylac na adres bug-sed@gnu.org (po
angielsku). Prosze rowniez umiescic wynik polecenia "sed --version" w
tresci wiadomosci, jesli to mozliwe.
AUTOR
Napisane przez Jaya Fenlasona, Toma Lorda, Kena Pizziniego, Paolo
Bonziniego, Jima Meyeringa, i Assafa Gordona.
Niniejszy program sed zbudowano bez obslugi SELinux.
Strona internetowa GNU sed: . Ogolna
pomoc dotyczaca oprogramowania GNU: .
Zgloszenia bledow prosze wysylac na adres: .
PRAWA AUTORSKIE
Copyright (C) 2022 Free Software Foundation, Inc. Licencja GPLv3+: GNU
GPL w wersji 3 lub pozniejszej .
Jest to wolne oprogramowanie: mozna je zmieniac i rozpowszechniac. Nie
ma ZADNEJ GWARANCJI, w granicach okreslonych przez prawo.
ZOBACZ TAKZE
awk(1), ed(1), grep(1), tr(1), perlre(1), sed.info, dowolna z wielu
ksiazek o sedzie, FAQ seda
(http://sed.sf.net/grabbag/tutorials/sedfaq.txt),
http://sed.sf.net/grabbag/.
Pelna dokumentacja sed jest dostepna w formacie Texinfo. Jesli programy
info i sed sa poprawnie zainstalowane, to polecenie
info sed
powinno dac dostep do pelnego podrecznika.
TLUMACZENIE
Autorami polskiego tlumaczenia niniejszej strony podrecznika sa:
Przemek Borys i Michal Kulach
Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o
warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public
License w wersji 3 lub
nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI.
Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy
dyskusyjnej .
GNU sed 4.9 marzec 2023 SED(1)