Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Tester komend sed

Testuj komendy sed (stream editor) online z podglądem na żywo. Zamiana tekstu, wyrażenia regularne, multiline. Bez terminala. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
191 znaków
38 znaków

Komendy

2

niepuste linie skryptu bez komentarzy #; wszystkie przyjęte

Linie zmienione

3
OK

linii: wejście 3 → wyjście 2

Znaki przed

191 zn.

wejście po opcjonalnym usunięciu CR

Znaki po

122 zn.

wynik działania skryptu

INFO 2026-02-22 user=\Lalice ip=192.168.0.10 path=/api/v1/login
INFO 2026-02-22 user=\LBob ip=10.0.0.5 path=/api/v1/logout
Tester obsługuje PODZBIÓR sed: podstawienie s/// z flagami oraz adresy /wzorzec/d i /wzorzec/p; nie ma y///, adresów numerycznych, bloków {} ani komend a/i/r
KomendaDziałanie (reguła z kodu)Przykład
s/wzorzec/zamiennik/ Podstawienie: zamienia dopasowania wzorca na zamiennik; separator dowolny znak zaraz po „s” (zadziała też s|x|y|) — bez flagi g tylko pierwsze wystąpienie w linii s/kot/pies/ → pierwsze „kot” w linii staje się „pies”
…s/…/g Flaga g: zamień wszystkie wystąpienia (kod: limit -1 zamiast 1) s/o/0/g → „kook” → „k00k”
…s/…/i (m, s, U) Flagi przekładane 1:1 na modyfikatory PCRE: i — wielkość liter, m — ^ i $ na granicach linii, s — kropka łapie nową linię, U — niełapliwość s/kot/pies/i łapie też „KOT”
/wzorzec/d Usuń linie pasujące do wzorca (kod: zostają linie, które NIE pasują) /401/d usuwa każdą linię zawierającą „401”
/wzorzec/p Pokaż TYLKO linie pasujące do wzorca (jak grep) /INFO/p zostawia wyłącznie linie z „INFO”
# komentarz Linie puste i zaczynające się od # są pomijane — nie liczą się jako komendy # popraw potem to nie komenda
UWAGA: prawdziwy sed z opcją -i NADPISUJE plik na dysku bezpowrotnie — ten tester działa wyłącznie w pamięci i niczego nie zapisuje. Ostatnie dwa wiersze pokazują różnicę trybów: w trybie „cały tekst” kotwica ^ bez flagi m trafia tylko na początek całego bufora
Dane wejścioweSkryptTrybWynik silnika
kot kot pies ⏎ pies kot s/kot/pies/ linia po linii pies kot pies ⏎ pies pies
INFO start ⏎ WARN brak ⏎ INFO stop /WARN/d linia po linii INFO start ⏎ INFO stop
INFO start ⏎ WARN brak ⏎ INFO stop /INFO/p linia po linii INFO start ⏎ INFO stop
pierwsza ⏎ druga s/^/> / linia po linii > pierwsza ⏎ > druga
pierwsza ⏎ druga s/^/> / cały tekst > pierwsza ⏎ druga

Warto wiedzieć — tester komend sed

Do czego służy sed

sed to strumieniowy edytor tekstu: czyszczenie logów, masowe poprawki w plikach, wyciąganie linii w potokach CLI. Skrypt łatwo przeszacować swoje siły — tutaj przetestujesz go na własnych danych i od razu zobaczysz liczbę zmienionych linii.

Tryb „linia po linii” vs „cały tekst”

Prawdziwy sed czyta wejście strumieniowo, linia po linii — tryb „linia po linii” jest mu najbliższy. Tryb „cały tekst” skleja wszystko w jeden bufor, więc kotwice ^ i $ bez flagi m działają inaczej (patrz tabela przykładów) — to częsta przyczyna „dlaczego to nie działa”.

Bezpieczeństwo: sed -i nadpisuje

sed -i modyfikuje plik na dysku — bez kopii zapasowej tej operacji nie da się cofnąć. Tester niczego nie zapisuje: pracuje wyłącznie w pamięci na wklejonym tekście. Zwyczaj „najpierw tester, potem -i” oszczędza wiele nerwów.

PCRE, nie BRE

Tester zamienia wzorce na regexy PCRE (jak w PHP), a nie BRE/ERE GNU sed. Skutek: znaki ( ) + ? { } są w PCRE specjalne bez ukośnika, a w GNU sed (BRE) odwrotnie — „\+” tam znaczy „jeden lub więcej”, tutaj „+” . Skrypt pisany pod GNU sed może wymagać drobnej korekty.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Tester komend sed – stream editor online z podglądem

sed (stream editor) to narzędzie Unix/Linux do przetwarzania tekstu linia po linii przy użyciu wyrażeń regularnych. Narzędzie pozwala testować komendy sed bezpośrednio w przeglądarce na testowym tekście bez dostępu do terminala.

tester sed online komendy sed sed wyrażenia regularne stream editor online

Podstawy sed

Składnia: sed 'polecenie' plik lub echo "tekst" | sed 'polecenie'. Główne polecenia: s/pattern/replacement/ (substitution), d (delete line), p (print), q (quit), i (insert before), a (append after). Pliki: sed -i 's/old/new/g' plik.txt (in-place z nadpisaniem). Backup: sed -i.bak 's/old/new/g' plik.txt.

Zamiana tekstu (s command)

s/wzorzec/zamiana/flagi. g = global (wszystkie wystąpienia). i = case-insensitive. 2 = tylko drugie wystąpienie. Przykłady: sed 's/foo/bar/g' (zamień wszystkie foo na bar). sed 's/^/prefix /' (dodaj prefix do każdej linii). sed 's/ *$//' (usuń trailing spaces). sed 's/[0-9]//g' (usuń cyfry).

Regex w sed

Podstawowe: . (dowolny), * (zero lub więcej), ^ (początek), $ (koniec), [...] (klasa), [^...] (negacja). Rozszerzone (sed -E): + (jeden lub więcej), ? (zero lub jeden), | (alternatywa), () (grupy), {n,m} (ilościowe). Back-references: \1, \2 dla grup. Przykład: sed -E 's/(\w+) (\w+)/\2 \1/' (zamień kolejność słów).

Zakresy linii

Numer linii: sed '2d' (usuń linię 2). Zakres: sed '2,5d' (usuń linie 2-5). Ostatnia: sed '$d' (usuń ostatnią). Pattern: sed '/wzorzec/d' (usuń linie z wzorcem). Zakres pattern: sed '/start/,/end/d' (usuń między). Negacja: sed '/wzorzec/!d' (zachowaj tylko linie z wzorcem = grep equivalent).

Jak działa tester poleceń sed

Tester komend sed nie uruchamia powłoki ani prawdziwego procesu sed. Wklejony tekst traktuje jak strumień wejściowy, czyli dokładnie tak, jak dane podawane przez potok. Cały blok tekstu dzielony jest na rekordy rozdzielone znakiem nowej linii, a polecenie wpisane w polu jest rozkładane na adresy i instrukcje. Dzięki temu ten sam efekt, który w terminalu daje echo "tekst" | sed 'polecenie', uzyskujesz bez otwierania konsoli i bez ryzyka nadpisania pliku.

Przetwarzanie jest liniowe i oparte na powtarzanym cyklu. sed wczytuje jedną linię do bufora zwanego pattern space, sprawdza, czy adres polecenia pasuje do numeru lub wzorca tej linii, a następnie wykonuje przypisane instrukcje w kolejności zapisu. Na końcu cyklu pattern space trafia na wyjście, chyba że pracujesz w trybie cichym. Potem bufor jest czyszczony i pętla startuje od nowa z kolejnym wierszem, aż do wyczerpania danych.

Drugim buforem jest hold space, czyli pamięć pomocnicza przechowująca dane między liniami. Polecenia h i H kopiują lub dopisują pattern space do hold space, g i G działają odwrotnie, a x zamienia ich zawartością. Właśnie dlatego sed potrafi odwracać kolejność wierszy albo łączyć sąsiednie linie. Tester pokazuje wynik po całym przebiegu, więc widzisz stan gotowego strumienia, a nie kolejne kroki pętli — przy debugowaniu warto więc zawężać adresy i testować na krótkim wejściu.

Przykład krok po kroku: zmiana formatu daty

  1. Przygotuj dane wejściowe. W polu tekstowym wklej dwie linie: Zamówienie z 14-03-2025 zostało wysłane. oraz Zwrot do 02-04-2025.
  2. Włącz tryb rozszerzonych wyrażeń regularnych, czyli odpowiednik sed -E, ponieważ polecenie korzysta z grup i przedziałów ilościowych zapisanych bez backslashy.
  3. Wpisz polecenie: s/([0-9]{2})-([0-9]{2})-([0-9]{4})/\3-\2-\1/g. Trzy grupy przechwytują kolejno dzień, miesiąc i rok, a w części zamiennej występują w odwrotnej kolejności.
  4. Uruchom test. Otrzymasz Zamówienie z 2025-03-14 zostało wysłane. oraz Zwrot do 2025-04-02.
  5. Sprawdź, czy flaga g jest potrzebna. Jest, gdyż pojedynczy wiersz może zawierać więcej niż jedną datę; bez g podmienione zostałoby tylko pierwsze dopasowanie w linii.
  6. Zawęź działanie adresem, jeśli chcesz zmienić daty wyłącznie w wybranych wierszach, na przykład /Zwrot/s/([0-9]{2})-([0-9]{2})-([0-9]{4})/\3-\2-\1/.

Tabela referencyjna: elementy polecenia sed

ElementDziałanieKiedy używać
-nwyłącza automatyczne wypisywanie pattern spacegdy sam decydujesz, co trafi na wyjście przez p
-E, w GNU sed także -rwłącza rozszerzone wyrażenia regularnegdy używasz plusa, pytajnika, alternatywy, grup i przedziałów bez backslashy
s///gpodmienia wszystkie dopasowania w liniigdy w jednym wierszu może być kilka trafień
y///translacja znak po znakugdy zamieniasz jeden zestaw znaków na inny tej samej długości
h, H, g, G, xoperacje na hold spaceprzy odwracaniu kolejności, łączeniu i przenoszeniu linii
&odwołanie do całego dopasowania w części zamiennejgdy dopisujesz tekst wokół trafienia bez przepisywania wzorca
{ }blok poleceń wykonywanych pod wspólnym adresemgdy kilka instrukcji ma działać tylko dla wybranych linii
qkończy przetwarzanie strumieniagdy chcesz uciąć dalsze linie po spełnieniu warunku

Praktyczne wskazówki

  • Zaczynaj od jednej linii. Zanim przetestujesz cały dokument, sprawdź polecenie na jednym wierszu — od razu zobaczysz, czy adres i wzorzec pasują, i nie będziesz szukać błędu w długim wyniku.
  • Pamiętaj o trybie cichym. Z opcją -n nie zobaczysz nic, dopóki nie dodasz polecenia p. To najczęstsza przyczyna pustego wyniku w testerze.
  • Grupuj wiele poleceń. Kilka instrukcji pod jednym adresem zapisz w nawiasach klamrowych i rozdziel średnikami, żeby żadna nie wykonała się poza zamierzonym zakresem.
  • Uważaj na cudzysłowy. W terminalu powłoka interpretuje znaki dolara, backslash i wykrzyknik przed uruchomieniem sed. W polu testera wpisujesz polecenie dosłownie, więc zapis sprawdzony lokalnie może wymagać korekty.
  • Weryfikuj wersję sed. Obsługa sekwencji słownych, sposób tworzenia kopii zapasowej i znaczenie flagi rozszerzonej różnią się między GNU sed a wersją z BSD lub macOS. Wynik z przeglądarki potwierdź na docelowym systemie.

Ograniczenia testera i czynniki zaburzające wynik

  • Brak operacji na plikach. Tester pracuje wyłącznie na tekście wklejonym w pole. Nie wykona edycji w miejscu, nie zapisze kopii zapasowej i nie odczyta pliku z dysku, więc zapis zmian musisz sprawdzić samodzielnie w terminalu.
  • Różnice między implementacjami. GNU sed, BSD sed i busybox mają odmienne szczegóły działania: sposób zapisu kopii, obsługę klas znaków oraz znaczenie niektórych sekwencji. Wynik w przeglądarce odpowiada tylko jednej z tych implementacji.
  • Tekst nie-ASCII i UTF-8. Skróty słowne, granice wyrazów i zakresy typu [a-z] nie obejmują znaków diakrytycznych, a podział na linie zależy od kodowania. Polskie znaki mogą zachować się inaczej niż w Twoim pliku.
  • Strumień liniowy i końce wierszy. sed domyślnie przetwarza rekordy rozdzielone znakiem nowej linii. Wiersze zakończone parą CRLF, dane binarne oraz rekordy rozdzielone znakiem NUL wymagają dodatkowych opcji, których prosty tester nie odwzoruje.

Najczęstsze pytania

Jak zamienić tekst w wielu plikach na raz?

sed -i 's/stary/nowy/g' *.txt. Z backup: sed -i.bak 's/old/new/g' *.txt. Rekurencyjnie: find . -name "*.php" -exec sed -i 's/old/new/g' {} +. grep + sed: grep -rl "old" . | xargs sed -i 's/old/new/g'. Uwaga: sed -i na macOS wymaga: sed -i "" 's/old/new/g' (puste rozszerzenie backup).

Jak usunąć puste linie sed?

sed '/^$/d' plik.txt (usuń dokładnie puste). sed '/^\s*$/d' (puste lub tylko białe znaki). Komentarze: sed '/^#/d' (usuń linie z #). Puste + komentarze: sed -e '/^$/d' -e '/^#/d'. Wiele poleceń: sed -e cmd1 -e cmd2 lub sed 'cmd1;cmd2'.

sed vs awk vs perl dla zamiany tekstu?

sed: szybki, prosty, jeden cel = substitution. awk: kolumny i obliczenia. perl -pe: pełna moc Perla dla złożonych pattern. sed przykład: sed 's/foo/bar/g'. perl: perl -pe 's/foo/bar/g'. Python: python3 -c "import sys; [print(l.rstrip().replace('foo','bar')) for l in sys.stdin]". Dla prostej zamiany: sed najszybszy i najprostszy.

Jak odwrócić kolejność linii pliku?

tac: tac plik.txt (reverse cat, GNU). sed: sed -n '1!G;h;$p' plik.txt (GNU sed). awk: awk '{ lines[NR]=$0 } END { for(i=NR;i>=1;i--) print lines[i] }' plik.txt. Python: print("\n".join(open("plik.txt").read().splitlines()[::-1])). Sortowanie: sort -r (wg zawartości, nie kolejności).

Jakie są ograniczenia sed?

Brak obsługi true multi-line (wbudowany): sed przetwarza linię po linii. Workaround: sed z N komendą (pobierz następną linię do przestrzeni). Brak zmiennych i funkcji (jak awk). Skomplikowane regex: lepiej perl lub python. GNU sed vs BSD sed: różnice w -E, -i, multiline. Dla złożonych transformacji: awk lub python.

Jak usunąć puste linie w sed?

Najprościej poleceniem sed '/^$/d' — usuwa wiersze, w których nie ma żadnego znaku. Jeśli plik zawiera linie z samymi spacjami lub tabulatorami, użyj sed '/^[[:space:]]*$/d'.

Dlaczego polecenie działa w testerze, a w terminalu nie?

Najczęściej winna jest powłoka, która przechwytuje znak dolara, backslash albo wykrzyknik przed uruchomieniem sed. Drugą przyczyną są różnice między GNU sed a BSD — flagi rozszerzonych wyrażeń regularnych nie są wymienne w każdej wersji.

Jak zamienić tekst tylko w liniach pasujących do wzorca?

Połącz adres z poleceniem podmiany: sed '/wzorzec/s/stary/nowy/g'. Adres wybiera wiersze, a s działa wyłącznie w tych, które pasują do wzorca.

Czym różni się sed -E od zwykłego sed?

W trybie podstawowym znaki plus, pytajnik, alternatywę i nawiasy grupujące trzeba poprzedzać backslashem. Flaga -E włącza rozszerzone wyrażenia regularne, dzięki czemu zapisuje się je bez ucieczki; w GNU sed to samo robi -r.

Jak dodać numer linii do każdego wiersza?

Polecenie = wypisuje numer bieżącej linii przed jej treścią. W GNU sed numer i tekst można połączyć w jednym wierszu, na przykład potokiem sed '=' | sed 'N;s/\n/\t/'.

Powiązane narzedzia: generator komend AWK, tester regex i generator komend bash.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!