zamień ciąg tekstowy w pliku [Guide]

Photo of author

By maciekx

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