Zrzut ekranu strony podręcznika (man page) programu GNU sed („stream editor”) w Termux.
Edytor wsadowy / edytor strumieniowy – program komputerowy lub jego część (funkcjonalność), edytor wykonujący nieinteraktywne modyfikacje tekstu na podstawie z góry określonej procedury (skryptu poleceń edycyjnych). Dane wejściowe do edycji mogą pochodzić ze zdefiniowanego źródła: z pliku lub standardowego wejścia (np. z potoku lub z klawiatury). Wyniki przetwarzania są kierowane na standardowe wyjście (zwykle do terminala lub dalej w potoku; mogą też zostać przekierowane do pliku).
Pojęcie „edytora strumieniowego” jest silnie związane z narzędziami typu sed, które wykonują transformacje tekstu na „strumieniu wejściowym” (pliku lub danych z potoku), są projektowane do pracy jako filtr w potokach i realizują przetwarzanie w jednym przebiegu po danych wejściowych. W odróżnieniu od edytorów buforowych, edytory wierszowe (np. ed) zwykle wczytują treść pliku do bufora i interpretują polecenia w trybie komend, co ułatwia ich użycie wsadowe (polecenia mogą pochodzić ze standardowego wejścia).
Charakterystyka
Edycja jest opisana skryptem poleceń (np. w przypadku sed skrypt może zostać podany w wierszu poleceń lub wczytany z pliku, a brak wskazania pliku wejściowego oznacza przetwarzanie standardowego wejścia).
Typowy edytor strumieniowy zapisuje wynik na standardowe wyjście; w przypadku GNU sed dostępna jest także edycja „w miejscu” (opcja -i), realizowana przez zapis do pliku tymczasowego i podmianę pliku wynikowego.
GNU sed domyślnie traktuje wiele plików wejściowych jako jeden długi strumień (co ma znaczenie m.in. dla adresowania w skrypcie), a zachowanie to można zmieniać opcjami wywołania.
W edytorach wierszowych (np. ed) treść pliku jest przechowywana w buforze, a edycja odbywa się poprzez podawanie poleceń edycyjnych; edytor może działać interaktywnie lub być sterowany z poziomu skryptów powłoki.
Typowe zastosowania programu
automatyczna edycja jednego lub większej liczby plików (np. masowe podstawienia i korekty w tekstach lub plikach konfiguracyjnych) wykonywana bez interakcji z użytkownikiem;
filtrowanie i transformacje danych tekstowych w potokach (np. w skryptach i automatyzacji przetwarzania logów);
upraszczanie powtarzających się operacji na wielu plikach przez ujęcie ich w skrypt poleceń edycyjnych;
pisanie programów konwertujących (normalizacja formatu tekstu, zmiany układu rekordów, usuwanie/wstawianie fragmentów).
Przykład
Poniższy przykład pokazuje podstawienie tekstu w strumieniu wejściowym i zapis wyniku na standardowe wyjście (z przekierowaniem do pliku).