Jak zrobić wiele wymiany SED

Jak zrobić wiele wymiany SED
Polecenie SED (edytor strumienia) może wykonywać różne funkcje w strumieniach w Unix/Linux. Na przykład: wyszukiwanie, znajdowanie i zastępowanie, wstawienie/delecja itp. Służy jednak głównie do znajdowania i wymiany tekstów. Polecenie SED umożliwia edycję plików bez ich otwierania. Ponieważ jest to narzędzie wiersza poleceń, można go również zaimplementować w skryptach.

W tym przewodniku zaprezentujemy, jak wykonać wiele wymiany SED w jednym pliku.

Wymiana tekstu za pomocą SED

Tworzenie przykładowego tekstu
Polecenie SED obsługuje zdefiniowane zadanie w strumieniu. Do celów demonstracyjnych utworzymy manekin, który służy jako strumień. Utwórz plik tekstowy za pomocą następującego polecenia:

kot < test.txt
szybki brązowy lis
przeskakuje nad leniwym psem
EOF

Sprawdź zawartość pliku za pomocą następującego polecenia:

Test $ CAT.tekst

Zastąpienie tekstu
Aby zastąpić teksty, ogólna struktura polecenia jest następująca:

$ sed 's /// g'

Tutaj SED wyszukuje wzór określony w danym strumieniu i zastąp go podanym tekstem zastępczym. Flaga G zapewnia, że ​​SED przeszukuje cały tekst w poszukiwaniu meczów wzorów.

Wypróbujmy to na naszym pliku demo. Uruchom następujące polecenie:

$ sed 's/the/hello/g test.tekst

Wykonanie wielu zamienników

W ostatnim przykładzie zastąpiliśmy jeden wzór tekstu. Co jeśli chcesz zastąpić wiele wzorów?

Jest na to kilka różnych sposobów. Możemy to zrobić w jednym poleceniu SED lub podzielić na wiele.

Wiele zamienników w jednym poleceniu SED
Możemy przekazać wiele wyrażeń do SED za pomocą flagi -e. Spójrz na następujący przykład:

$ sed -e 's/the/hello/g' -e 's/lazy/zmęczony/' test.tekst

Tutaj pierwsze wyrażenie zastępuje „The” „Hello”. Drugi wyraz zastępuje „leniwy” na „zmęczony”.

Zamiast deklarować wiele wyrażeń, możemy również połączyć je w jedno wyrażenie, każda część oddzielona półkolisem (;). Spójrz na następujący przykład:

$ sed -e 's/the/hello/g; s/leniwy/zmęczony/' test.tekst

Jeśli ciągle uruchamiasz ten sam zestaw poleceń SED, możemy je umieścić w jednym pliku. Możemy przekazać plik jako źródło poleceń do SED za pomocą flagi -f. Struktura poleceń wygląda jak następujące:

$ sed -f

Włóżmy to w akcję. Skompilowaliśmy wszystkie polecenia SED, które chcemy uruchomić w poleceniach plików.tekst.

$ CAT Polecenia.tekst

Zauważ, że każde unikalne wyrażenie SED jest umieszczane w nowej linii w celu poprawy przejrzystości wizualnej. Możesz jednak użyć techniki półkolonowej, aby połączyć wszystkie wyrażenia w jedno wyrażenie.

Teraz możemy określić ten plik do SED jako listę wyrażeń do uruchomienia w danym strumieniu:

$ sed -f polecenia.Test TXT.tekst

Wiele zastępców SED na wiele poleceń SED
To prostsze podejście. Zamiast używać jakiejkolwiek fantazyjnej sztuczki, filtrujemy strumień za pomocą polecenia SED i przekazujemy wyjście do innych poleceń SED.

Spójrz na następujący przykład:

$ sed 's/the/hello/g test.txt | sed 's/leniwy/zmęczony/'

Tutaj pierwsze polecenie SED zastępuje „The” „Hello”. Wyjście jest następnie przenoszone do drugiego polecenia SED, które zastępuje „leniwy” „zmęczonym”.

Chociaż ta metoda jest prosta, może bardzo łatwo stać się zbędna, szczególnie jeśli potrzebujesz uruchomić wiele wyrażeń SED. W takim przypadku używanie pliku polecenia SED jest najbardziej wydajnym sposobem.

Wniosek

W tym przewodniku badaliśmy różne sposoby, w jaki możemy wykonać wiele zastępców za pomocą SED. Wykazaliśmy, jak przekazać wiele wyrażeń za pomocą flagi -e. Ponadto ściśnęliśmy wiele wyrażeń w pojedyncze wyrażenie za pomocą półkolisów. Aby uzyskać bardziej powtarzające się obciążenie pracą, wykazaliśmy również użycie pliku tekstowego do uruchamiania wielu wyrażeń SED jednocześnie.

Wreszcie, zbadaliśmy użycie SED w prosty sposób: Prowadzenie wyjścia jednego polecenia SED do drugiego.

W tym przewodniku polecenia SED tak naprawdę nie zmieniają treści pliku. Dowiedz się więcej o użyciu SED do edytowania plików na miejscu.

Szczęśliwy komputer!