Ręczna edycja plików tekstowych w systemie Linux może być czasochłonna. Dlatego warto znać sposoby na szybkie zamienianie ciągów tekstowych w plikach za pomocą terminala. Jeśli dopiero zaczynasz przygodę z Linuxem i nie masz pojęcia, jak to zrobić, jesteśmy tutaj, aby pomóc! Przeczytaj, jak łatwo zamienić ciąg tekstowy w pliku na systemie Linux!
Zamiana ciągu tekstowego w pliku – sed
Narzędzie sed jest jednym z najskuteczniejszych sposobów na zastąpienie ciągu tekstowego w pliku w systemie Linux. Dlaczego? Jest łatwe w użyciu i doskonale spełnia swoje zadanie. Sed jest zazwyczaj wstępnie zainstalowany w prawie wszystkich systemach operacyjnych Linux, więc nie musisz go instalować, aby z niego skorzystać.
Proces zamiany ciągu tekstowego za pomocą sed odbywa się za pomocą polecenia sed -i
. Oto jak to zrobić. Najpierw otwórz terminal w systemie Linux. Możesz to zrobić, naciskając jednocześnie klawisze Ctrl + Alt + T na klawiaturze.
Gdy terminal jest już otwarty, wpisz sed -i
w wierszu poleceń. To będzie początek polecenia zamiany.
sed -i
Po wpisaniu sed -i
, dodaj znak cudzysłowu. Ten cudzysłów jest kluczowy, ponieważ cały tekst, który ma być zastąpiony, musi znajdować się w jego obrębie.
sed -i '
Następnie wpisz s/
. Znak s/
znajduje się bezpośrednio przed tekstem, który chcesz zamienić w pliku.
sed -i 's/
Teraz, gdy masz już s/
w wierszu poleceń, czas określić, jaki tekst ma być zamieniony. W tym przypadku zamienimy słowo „jabłko”.
sed -i 's/apple
Po tym, jak wpiszesz tekst, który chcesz zamienić, dodaj nowy tekst, który go zastąpi. W tym przykładzie zamienimy „jabłka” na „pomarańcze”.
sed -i 's/apples/oranges
Gdy już wpiszesz nowy tekst (w tym przypadku „pomarańcze”), zakończ polecenie znakiem /g
. Opcja g
instruuje sed, aby zamienił wszystkie wystąpienia tekstu (w tym wypadku „jabłka”) na nowy tekst (czyli „pomarańcze”). Całe polecenie powinno wyglądać jak poniżej:
Uwaga: Jeśli nie chcesz zamieniać każdej instancji tekstu w pliku (na przykład zamieniając „jabłka” na „pomarańcze”), po prostu usuń g
i wpisz polecenie jako sed -i 's/apples/oranges/'
.
sed -i 's/apples/oranges/g'
Na końcu musisz powiedzieć sed, w którym pliku znajduje się tekst do zamiany. W naszym przykładzie celem jest fruit.txt
w katalogu domowym użytkownika.
sed -i 's/apples/oranges/g' ~/fruit.txt
Naciśnij Enter, aby wykonać polecenie i zastąpić ciąg tekstowy w pliku.
Zamiana ciągu tekstowego w pliku – Perl
Innym sposobem na zastąpienie ciągu tekstowego w pliku w systemie Linux jest użycie języka programowania Perl. Jest on często wykorzystywany do przetwarzania tekstu, co czyni go idealnym narzędziem do zamiany ciągów tekstowych w plikach.
Aby zacząć, upewnij się, że Perl jest zainstalowany na twoim komputerze z Linuxem. W większości dystrybucji Linuxa Perl jest domyślnie zainstalowany. Jeśli jednak go nie masz, sprawdź dokumentację swojego systemu, aby dowiedzieć się, jak go zainstalować.
Aby użyć Perla do zamiany ciągów tekstowych w pliku, otwórz terminal, korzystając z kombinacji klawiszy Ctrl + Alt + T, lub wyszukaj „Terminal” w menu aplikacji i uruchom go stamtąd.
Po otwarciu terminala, zacznij od wpisania polecenia perl -pe
. To polecenie jest wymagane do zastąpienia ciągu tekstowego w pliku.
perl -pe
Po wpisaniu perl -pe
w terminalu, musisz rozpocząć od pierwszego znaku cudzysłowu. Ten znak informuje Perla o tym, gdzie zaczyna się polecenie do zastępowania tekstu.
perl -pe '
Po pierwszym cudzysłowie dodaj s/
, następnie ciąg tekstu, który chcesz zamienić, oraz kolejny /
. Na przykład, aby zamienić słowo „jabłka” w pliku fruit.txt
, musisz wpisać następujące polecenie:
perl -pe 's/apples/
Po dodaniu tekstu, który chcesz zamienić, dodaj nowy tekst, który ma go zastąpić. Na przykład, jeśli chcesz zamienić „jabłka” na „pomarańcze”, polecenie powinno wyglądać tak:
perl -pe 's/apples/oranges/
Gdy oba ciągi tekstowe są już w poleceniu, musisz wskazać plik, którego Perl ma użyć. Na przykład, jeśli chcesz zamienić tekst w pliku fruit.txt
, musisz go określić w poleceniu.
Uwaga: w tym przypadku plik fruit.txt
znajduje się w katalogu domowym (~ /). Pamiętaj, aby zamienić ~/fruit.txt
na odpowiednią lokalizację pliku tekstowego, aby polecenie działało poprawnie.
perl -pe 's/apples/oranges/' ~/fruit.txt
Teraz, gdy plik wejściowy (plik, który modyfikujesz za pomocą Perla) jest już uwzględniony w poleceniu, powinno ono wyglądać jak poniżej:
perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt; cat /tmp/output.txt > ~/fruit.txt
Po wykonaniu powyższego polecenia ciąg tekstowy zostanie zastąpiony nowym tekstem. W naszym przypadku zamieniliśmy „jabłka” na „pomarańcze”. Aby zobaczyć wprowadzone zmiany, wpisz poniższe polecenie:
cat fruit.txt
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.