Ręczna edycja plików tekstowych w systemie Linux może być żmudna. Dlatego dobrze jest wiedzieć, jak szybko zastąpić ciągi tekstowe w plikach za pomocą wiersza poleceń. Jeśli jesteś nowy w Linuksie i nie wiesz, jak to zrobić, możemy pomóc! Śledź dalej, ponieważ pokazujemy, jak zastąpić ciąg tekstowy w pliku w systemie Linux!
![Linux: zamień ciąg tekstowy w pliku [Przewodnik] Linux: zamień ciąg tekstowy w pliku [Przewodnik]](/resources8/images2m/image-7855-1221165512611.png)
Zastąp ciąg tekstowy w pliku – sed
Narzędzie sed to najlepszy sposób na zastąpienie ciągu tekstowego w pliku w systemie Linux. Powód? Jest prosty w użyciu i bardzo dobrze wykonuje swoją pracę. Sed jest zwykle preinstalowany w 99% systemów operacyjnych Linux, więc nie trzeba go instalować, aby z niego korzystać.
Zastąpienie ciągu tekstowego w pliku poleceniem Sed odbywa się za pomocą polecenia sed -i . Oto jak z niego korzystać. Najpierw otwórz okno terminala na pulpicie systemu Linux. Możesz otworzyć okno terminala, naciskając Ctrl + Alt + T na klawiaturze.
Gdy okno terminala jest otwarte i gotowe do użycia, wpisz sed -i w wierszu zachęty terminala. To jest początek polecenia zamiany.
sed-i
Po napisaniu polecenia sed -i dodaj znak cudzysłowu. Ten cudzysłów jest niezbędny, ponieważ cały tekst zastępowany przez sed -i musi zaczynać się po tym znaku.
sed-i '
Po pierwszym znaku ' napisz s/ . S / idzie bezpośrednio przed istniejącego tekstu, który chcesz zastąpić używając sed .
sed-i's/
Teraz, gdy s/ jest wpisane w wierszu poleceń terminala, nadszedł czas, aby powiedzieć sedowi, jaki tekst ma zastąpić w pliku. W tym przykładzie zastąpimy słowo „jabłko”.
sed-i's/jabłko
Kiedy tekst, który chcemy zastąpić, zostanie wpisany do polecenia, następnym krokiem jest wpisanie nowego tekstu, który go zastąpi. W tym przykładzie zastąpimy słowo „jabłka” słowem „pomarańcze”.
sed -i's/jabłka/pomarańcze
Gdy tekst, który chcemy zastąpić, zostanie zapisany w poleceniu (pomarańcze), zamknij polecenie za pomocą g/ . G / nakazuje sed do zastąpienia wszystkich wystąpień tekstowych (jabłka) z nowym tekstem (pomarańcze). Powinno to wyglądać jak na poniższym przykładzie.
Uwaga: jeśli nie chcesz zamieniać każdego tekstu w pliku (na przykład jabłek na pomarańcze), usuń g i uruchom go jako sed -i 's/apples/oranges/'zamiast.
sed -i 's/jabłko/pomarańcza/g'
Na koniec powiedz sedowi, w jakim pliku znajduje się tekst, który wymaga zastąpienia. W tym przykładzie docelowym plikiem jest plik fruit.txt w katalogu domowym.
![Linux: zamień ciąg tekstowy w pliku [Przewodnik] Linux: zamień ciąg tekstowy w pliku [Przewodnik]](/resources8/images2m/image-7855-1221165512611.png)
sed -i 's/jabłka/pomarańcze/g' ~/owoce.txt
Naciśnij klawisz Enter, aby wykonać polecenie i zastąpić ciąg tekstowy w pliku.
Zastąp ciąg tekstowy w pliku – Perl
Innym sposobem zastąpienia ciągu tekstowego w pliku w systemie Linux jest język programowania Perl. Perl jest często używany do przetwarzania tekstu, więc naturalnie może podmieniać ciągi tekstowe w plikach i jest idealny do tego przypadku użycia.
Aby rozpocząć, upewnij się, że masz zainstalowany Perl na swoim komputerze z systemem Linux. Większość systemów operacyjnych Linux ma zainstalowany Perl. Jeśli jednak go nie masz, sprawdź stronę pomocy swojego systemu operacyjnego, aby uzyskać informacje o tym, jak go uruchomić.
Używanie Perla do zastępowania ciągów tekstowych w pliku wymaga terminala. Otwórz terminal na pulpicie systemu Linux, naciskając Ctrl + Alt + T na klawiaturze. Lub wyszukaj „Terminal” w menu aplikacji i uruchom go w ten sposób.
Gdy okno terminala jest otwarte i gotowe do użycia, zacznij od wpisania perl -pe w wierszu poleceń. Polecenie perl -pe jest tym, co jest potrzebne do zastąpienia ciągu tekstowego w pliku.
perl-pe
Po wypisaniu perl -pe w wierszu zachęty terminala będziesz musiał zacząć od pierwszego znaku cudzysłowu ' . Ten znak mówi Perlowi, gdzie w poleceniu znajduje się obszar zastępowania tekstu.
perl -pe '
Po pierwszym " cudzysłowu, dodać s / , po którym następuje ciąg tekstu, który chcesz zastąpić, a drugi / . Na przykład, aby zastąpić słowo „jabłka” w pliku fruit.txt, należy napisać następujący tekst.
perl -pe's/jabłka/
Po wpisaniu słów, które chcesz zastąpić, dodaj słowo, które zastąpi istniejący tekst. Na przykład, jeśli chcesz zastąpić „jabłka” w „owocu.txt” słowem „pomarańcze”, dodaj „pomarańcze”, perl -pe 's/apples/aby wyglądało to tak perl -pe 's/apples/oranges/.
perl -pe 's/jabłka/pomarańcze/
Gdy oba ciągi tekstu są w poleceniu, musisz określić plik wejściowy, którego używa Perl. Na przykład, jeśli chcesz zastąpić tekst w pliku „fruit.txt”, musisz podać go w poleceniu.
Uwaga: w tym przykładzie plik „fruit.txt” znajduje się w katalogu domowym (~/). Pamiętaj, aby zastąpić „~/owoc.txt” lokalizacją pliku tekstowego, aby polecenie zadziałało.
perl -pe 's/jabłka/pomarańcze/' ~/owoce.txt
Teraz, gdy plik wejściowy (plik, który modyfikujesz za pomocą Perla) został dodany do polecenia, polecenie powinno wyglądać tak, jak poniżej.
![Linux: zamień ciąg tekstowy w pliku [Przewodnik] Linux: zamień ciąg tekstowy w pliku [Przewodnik]](/resources8/images2m/image-9788-1221165513836.png)
perl -pe 's/jabłka/pomarańcze/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
Po uruchomieniu powyższego polecenia ciąg tekstowy zostanie zastąpiony nowym określonym tekstem. W naszym przykładzie zastąpiliśmy „jabłka” „pomarańczami”. Aby zobaczyć zmiany, wpisz poniższe polecenie.
kot owoc.txt