Jak używać polecenia Sed w systemie Linux do aktualizacji plików
Polecenie sed (Stream Editor) w Linuxie jest potężnym narzędziem używanym do przetwarzania tekstu i modyfikacji plików. Umożliwia użytkownikom efektywne wyszukiwanie, zastępowanie, wstawianie i usuwanie tekstu w plikach, co czyni go niezbędnym poleceniem do automatyzacji i skryptowania. W tym przewodniku zbadamy, jak używać polecenia sed do aktualizacji plików w Linuxie na praktycznych przykładach.
Polecenie sed jest szeroko stosowane do:
Zastępowania tekstu – Łatwe zastępowanie słów, fraz lub wzorców w plikach.
Przetwarzania wsadowego – Modyfikacja wielu plików jednocześnie za pomocą skryptów.
Wydajności – Szybko przetwarza duże pliki bez ich otwierania.
Edytowania w linii – Modyfikacja plików bezpośrednio z linii poleceń.
Automatyzacji – Używane w skryptach do obsługi powtarzających się modyfikacji tekstu.
Ogólna składnia polecenia sed to:
sed [OPTIONS] 's/old-text/new-text/g' filename
Gdzie:
- s – Oznacza substytucję.
- old-text – Tekst do zastąpienia.
- new-text – Tekst zastępczy.
- g – (Globalnie) Zapewnia, że wszystkie wystąpienia w linii są zastępowane.
- filename – Plik do modyfikacji.
Jak używać polecenia Sed do aktualizacji plików
1. Zastąp słowo w pliku
Aby zastąpić konkretne słowo w pliku, użyj:
sed 's/Linux/Ubuntu/g' file.txt
To zastępuje pierwsze wystąpienie „Linux” „Ubuntu” w każdej linii pliku.txt.
2. Zastąp wszystkie wystąpienia w pliku
Aby zastąpić wszystkie wystąpienia słowa globalnie w pliku:
sed 's/Linux/Ubuntu/g' file.txt
Flaga g zapewnia, że każde wystąpienie w linii jest zastępowane.
3. Edytuj plik na miejscu (modyfikuj plik bezpośrednio)
Aby wprowadzić zmiany bezpośrednio w pliku bez wyświetlania wyników:
sed -i 's/Linux/Ubuntu/g' file.txt
Opcja -i umożliwia edytowanie na miejscu, co oznacza, że oryginalny plik jest modyfikowany bez potrzeby zapisywania osobnej wersji.
4. Zastąp tekst tylko w określonych liniach
Aby zmodyfikować tylko określone linie w pliku, określ numer linii:
sed '3s/Linux/Ubuntu/' file.txt
To polecenie zastępuje „Linux” „Ubuntu” tylko w linii 3.
5. Usuń linię zawierającą określony tekst
Aby usunąć wszystkie linie zawierające konkretne słowo, użyj:
sed '/unwanted-text/d' file.txt
To usuwa wszystkie linie, które zawierają „unwanted-text”.
6. Usuń określoną linię według numeru
Aby usunąć określoną linię, użyj:
sed '5d' file.txt
To usuwa linię 5 z pliku.txt.
7. Wstaw tekst przed linią
Aby dodać linię przed określonym numerem linii:
sed '3iThis is a new line' file.txt
To wstawia „To jest nowa linia” przed linią 3.
8. Wstaw tekst po linii
Aby wstawić linię po określonym numerze linii:
sed '3aThis is an appended line' file.txt
To dodaje „To jest dodana linia” po linii 3.
9. Zastąp słowo w wielu plikach
Aby zastąpić tekst w wielu plikach jednocześnie:
sed -i 's/Linux/Ubuntu/g' *.txt
To polecenie modyfikuje wszystkie pliki .txt w katalogu, zastępując „Linux” „Ubuntu”.
Zaawansowane polecenia Sed
1. Użyj wielu poleceń Sed razem
Aby wykonać wiele modyfikacji jednocześnie:
sed -i -e 's/Linux/Ubuntu/g' -e 's/Server/Cloud/g' file.txt
To zastępuje „Linux” „Ubuntu” i „Server” „Cloud” w pliku.txt.
2. Użyj Sed z wyrażeniami regularnymi
Aby zastąpić liczby w pliku:
sed 's/[0-9]/#/g' file.txt
To zastępuje wszystkie cyfry na #.
3. Wyodrębnij określone linie z pliku
Aby wyodrębnić i wyświetlić linie od 5 do 10:
sed -n '5,10p' file.txt
Opcja -n zapobiega drukowaniu całego pliku, pokazując tylko linie 5-10.
Najlepsze praktyki używania Sed
- Zawsze twórz kopie zapasowe plików przed użyciem -i – Zapobiega przypadkowemu utracie danych.
- Używaj wyrażeń regularnych – Potężne dopasowywanie wzorców do złożonych modyfikacji.
- Testuj polecenia przed wprowadzeniem zmian – Uruchom sed bez -i, aby zobaczyć podgląd wyników.
- Używaj skryptów do automatyzacji – Połącz sed z skryptowaniem powłoki do przetwarzania wsadowego.
Podsumowanie
Polecenie sed jest wszechstronnym i wydajnym narzędziem do aktualizacji plików w Linuxie. Niezależnie od tego, czy potrzebujesz zastąpić tekst, usunąć linie, czy wstawić zawartość, sed może zautomatyzować i uprościć te zadania. Opanowując sed, możesz poprawić swój przepływ pracy i zwiększyć wydajność w administracji Linuxem i skryptowaniu.


