Sed
oznacza edytor strumienia. Jest to edytor oparty na linii poleceń dla systemu Linux. Popularnym zastosowaniem sed jest edytowanie plików w ramach skryptu automatyzacji w systemie Linux, ponieważ zwykłe edytory wymagają aktywnego wprowadzania danych przez użytkownika i nie mogą edytować plików poza ekranami edytora. Sed jest najczęściej używany do wyszukiwania i zamiany z wiersza poleceń.
Ten typ edytora tekstu można również sklasyfikować jako nieinteraktywny edytor tekstu.
Zobaczmy kilka typowych opcji edycji plików za pomocą Sed. Jako przykład weźmiemy następujący plik:
$: cat test.txt Szybki brązowy pies przeskoczył nad leniwym kotem. System operacyjny Linux. Las obok mnie ma kota i wilki.
Wyszukaj i zamień
Aby wyszukać ciąg w pliku i zastąpić innym ciągiem, uruchom:
sed -i "s/cat/fox/g" test.txt
Tutaj -i
flaga nakazuje sedowi zapisanie zmian w pliku. Bez tej flagi sed
po prostu wyświetli plik ze zmienionym ciągiem.
W cytatach mamy s/kot/lis/g
. ten s
służy do wyszukiwania i zamiany polecenia sed
. Następnie mamy ciąg do przeszukania, który jest Kot
. Następnie ciąg do zastąpienia go, tj. lis
. Wreszcie mamy opcjonalne g
, który instruuje sed
zastąpić wszystkie wystąpienia we wszystkich wierszach pliku. Bez g
, sed zastąpi tylko pierwsze wystąpienie Kot
na każdej linii.
Można tu również użyć regexa.
sed -i "s/f[a-z]*\./cat\./g"
Wstawić
Aby wstawić tekst przed wierszem z dopasowanym ciągiem, użyj:
sed -i "/cat/i Start:" test.txt
Tutaj, Kot
jest wyszukiwanym ciągiem i Początek:
jest ciągiem do wprowadzenia przed wierszem, w którym znajduje się szukany ciąg.
Podobnie, aby wstawić tekst po linii, użyj:
sed -i "/lis/a koniec." test.txt
Kasować
Aby usunąć linię zawierającą podciąg, użyj:
sed -i "/Linux/d" test.txt
Aby usunąć linię z numerem linii, np. w pierwszym wierszu użyj:
sed -i '1d' test.txt
Łączenie wielu funkcji
Aby połączyć wiele funkcji, np. wyszukaj i zamień, usuń, jednym poleceniem, -mi
można użyć flagi.
sed -i -e "s/lis/cat/g" -e '2d' test.txt
? Twoje zdrowie!