Polecenie SED w Linux z 15 praktycznymi przykładami

Polecenie SED w Linux z 15 praktycznymi przykładami

„sed” Polecenie jest niezbędnym narzędziem do manipulowania tekstem w Linux. Pozwala wyszukiwać wzorce w tekście i wykonywać różne operacje w pasującym tekście, takie jak wymiana, usuwanie lub wydrukowanie. To polecenie przyjmuje dane wejściowe z pliku lub standardowego wejścia.

Domyślne polecenie SED nie wprowadza zmian w oryginalnym pliku, dopóki nie użyjesz -I Parametr wiersza poleceń. Polecenie ostrzega tekst i wysyła wynik do standardowego wyjścia. Możesz także przekierować tekst do pliku zgodnie z wymaganiami.

W tym artykule przedstawimy 15 praktycznych przykładów korzystania z „sed” polecenie wykonywania różnych zadań.

Wymień przykład Strings za pomocą SED

1. Wymień ciąg w pliku

Aby wymienić ciąg w pliku, możesz użyć 's/old_string/new_string/g' Komenda. Składnia to:

# Składnia SED 's/old_string/new_string/g' plik_name
12# SyntaxSed 's/old_string/new_string/g' plik_name

Aby wymienić ciągi w pliku za pomocą polecenia SED, użyj -I argument o wprowadzeniu zmian. Ciąg polecenia musi zawierać polecenie zastępcze 'S', oryginalny ciąg i ciąg wymiany. Na przykład, aby zastąpić wszystkie wystąpienia ciągów „Apple” na ciąg „banan” w pliku o nazwie Fruits.TXT, użyj następującego polecenia:

Zobacz następujący przykład:

SED 'S/Apple/Banana/G' owoce.tekst  

To polecenie odczytuje treść z „owoców.plik txt ”i zastępuje wszystkie wystąpienia słowa "jabłko" słowem "banan" i drukuje wynikowy tekst do terminala. G mówi poleceniu, aby zastąpić wszystkie dopasowane zdarzenia na całym świecie w pliku.

Możesz także wprowadzić zmiany w tym samym pliku za pomocą -I opcja.

SED -i 'S/Apple/Banana/G' owoce.tekst  

Zobaczysz, że oryginalny plik jest modyfikowany. Możesz także wykonać kopię zapasową pliku przed wprowadzeniem zmian w oryginalnym pliku.

sed -i.Owoce Bak/Apple/Banana/G '.tekst  

Plik kopii zapasowej oryginału zostanie utworzony w bieżącym katalogu o nazwie owoce.tekst.Bak.

2. Wymień pierwsze występowanie każdej linii

Aby zastąpić tylko pierwsze wystąpienie wzoru na każdym wierszu, możesz użyć s/wzor. Na przykład, aby zastąpić tylko pierwsze wystąpienie słowa „jabłko” słowem „banan” w plikach owoce.TXT, możesz użyć następującego polecenia:

SED/Apple/Banana/'Fruits.tekst  

3. Wymień ostatnie występowanie każdej linii

Aby zastąpić tylko ostatnie wystąpienie wzoru na każdym wierszu, możesz użyć polecenia S/Wzór/wymiana/g '. Na przykład, aby zastąpić tylko ostatnie wystąpienie słowa „jabłko” słowem „banan” w plikach owoce.txt ', możesz użyć następującego polecenia:

sed 's/\ (.*\) owoce Apple/\ 1banana/g '.tekst  

4. Wymień ciąg w określonym numerze wiersza

Aby wymienić ciąg na określonym wierszu, możesz użyć lineny/wzoru/zamiennika/polecenia. Na przykład, aby zastąpić pierwsze wystąpienie słowa „jabłko” słowem „banan” w wierszu 3 owoców plików.TXT, możesz użyć następującego polecenia:

sed '3s/jabłko/banan/' owoce.tekst  

5. Wymień ciąg z zakresu liczb linii

Aby wymienić ciąg w zakresie linii, możesz użyć startlineNumber, endlineNumber/wzór/zamiennik/polecenie. Na przykład, aby zastąpić pierwsze wystąpienie słowa „jabłko” słowem „banan” w wierszach od 3 do 5 owoców plików.TXT, możesz użyć następującego polecenia:

sed '3,5s/jabłko/banan/' owoce.tekst  

Usuwanie linii w pliku za pomocą SED

6. Usuń pierwszą linię z pliku

Aby usunąć linię zawierającą określony ciąg, możesz użyć polecenia /wzorca /d. Na przykład, aby usunąć wszystkie wiersze zawierające słowo „jabłko” w owocach plików.TXT, możesz użyć następującego polecenia:

owoce sed „1d”.tekst  

7. Usuń linia zawiera określony ciąg

Aby usunąć linię zawierającą określony ciąg, możesz użyć „/wzór/d” Komenda. Na przykład, aby usunąć wszystkie wiersze zawierające słowo „jabłko” w owocach plików.TXT, możesz użyć następującego polecenia:

Sed '/Apple/D' owoce.tekst  

8. Usuń linie oprócz pasującego ciągu

Aby odwrócić pasujące linie, możesz użyć '!' operator w połączeniu z innymi poleceniami. Na przykład, aby usunąć wszystkie wiersze zawierające słowo „jabłko” w owocach plików.TXT, możesz użyć następującego polecenia:

sed '/jabłko/!D 'Fruits.tekst  

9. Usuń zakres linii

Aby usunąć szereg linii, możesz użyć startlineNumber, endlineNumberd Komenda. Na przykład, aby usunąć wiersze od 3 do 5 pliku owoce.tekst, Możesz użyć następującego polecenia:

sed „3,5d” owoce.tekst  

10. Usuń puste linie z pliku

Możesz usunąć puste linie z pliku za pomocą „/^$/d” opcja.

sed '/^$/d' owoce.tekst  

To polecenie uważa linię za pustą, która nie zawiera żadnej postaci, nawet jednej przestrzeni.

Linie drukowania z pliku za pomocą SED

11. Wydrukuj tylko numery linii

Aby wydrukować tylko liczby linii pasujących linii, możesz użyć '/wzór/=' Komenda. Na przykład, aby wydrukować numery linii wszystkich linii zawierających słowo „jabłko” w owocach pliku.TXT, możesz użyć następującego polecenia:

SED '/Apple/=' owoce.tekst  

12. Wydrukuj zakres pliku

Aby wydrukować szereg linii, możesz użyć „Rozpocznij, endp” polecenia. Na przykład, aby wydrukować pierwsze 10 wierszy owoców plików.TXT, możesz użyć następującego polecenia:

sed -n '1,10p' owoce.tekst  

Wstawienie linii do pliku za pomocą SED

13. Włóż nową linię po dopasowaniu wzoru

Aby wstawić linię po określonym wzorze, możesz użyć „/wzór/a \ newline” Komenda. Na przykład, aby wstawić linię „winogrona” po linii zawierającej słowo „jabłko” w owocach plików.TXT, możesz użyć następującego polecenia:

Sed '/Apple/a \ winogrona owoce.tekst  

14. Włóż nową linię przed dopasowaniem wzoru

Aby wstawić linię przed określonym wzorem, możesz użyć „/wzór/i \ newline” Komenda. Na przykład, aby wstawić linię „winogrona” przed linią zawierającą słowo „jabłko” w owocach plików.TXT, możesz użyć następującego polecenia:

Sed '/Apple/i \ winogrona owoce.tekst  

Inne zadania za pomocą SED

15. Zmień przypadek znaków

Aby zmienić przypadek ciągu, możesz użyć „T/Old/New/” Komenda. Na przykład, aby zmienić wszystkie małe litery na wielki poziom owoców plików.TXT, możesz użyć następującego polecenia:

sed 'y/abcdEfghijklmnopqrstuvwxyz/abcDefghijklmnopqrstuvwxyz/' owoce.tekst  

Wniosek

Mamy nadzieję, że te przykłady były pomocne w pokazaniu wszechstronności polecenia SED. Pamiętaj, że SED jest bardzo potężnym narzędziem i ważne jest, aby dokładnie przetestować swoje polecenia przed użyciem ich w ważnych plikach. Jeśli masz jakieś pytania lub potrzebujesz dalszej pomocy, nie wahaj się zapytać. Z tymi praktycznymi przykładami za pasem będziesz na dobrej drodze do opanowania polecenia SED i zostaniesz biegłym administratorem Linuksa.