sed

Jak zamienić wszystko po wzorcu za pomocą polecenia seded

Jak zamienić wszystko po wzorcu za pomocą polecenia seded

Zadania zastępcze można wykonywać w Linuksie na różne sposoby. Polecenie „sed” jest jednym ze sposobów wykonania zadania zastępczego. To polecenie może być użyte do zastąpienia tekstu w ciągu znaków lub pliku przy użyciu innego wzorca. Jak możesz zastąpić wszystko po dopasowaniu wzorca za pomocą polecenia 'sed' jest pokazane w tym samouczku.

Zamień wszystko po dopasowaniu w ciągu:

Jak można zastąpić część ciągu na podstawie pasującego wzorca i kolumny $PARTITION_COLUMN pokazano w tej sekcji tego samouczka. Ale ta zmienna działa, jeśli wzorzec pasuje do dowolnego słowa na początku lub w środku ciągu. Nie zastąpi tekstu, jeśli wzorzec pasuje do ostatniego słowa ciągu.

Przykład-1: Zamień wszystko po dopasowaniu za pomocą $PARTITION_COLUMN

Poniższe polecenie przeszuka znak 'a', a pozostała część po 'a' zostanie zastąpiona tekstem „popularna witryna blogowa”. $PARTITION_COLUMN.* służy do określenia pozostałej części po znaku „a”.

$ echo "LinuxHint to strona internetowa" | sed "s/a $PARTITION_COLUMN.*/popularny blog/"

Następujące dane wyjściowe pojawią się po uruchomieniu polecenia. Tutaj „witryna” została zastąpiona przez „popularną witrynę bloga”.


Poniższy wzorzec spowoduje wyszukanie słowa „sieć„  w ciągu i zastąp pozostałą część znakiem ”sieć„przez tekst”popularna witryna blogowa' jeśli dopasowanie istnieje i 'sieć„ nie jest częścią ostatniego słowa ciągu”.

$ echo "LinuxHint to strona internetowa" | sed "s/sieć".* $PARTITION_COLUMN.*/popularny blog/"

Następujące dane wyjściowe pojawią się po uruchomieniu polecenia. Tutaj „witryna” jest ostatnim słowem ciągu i z tego powodu nie dokonano żadnej zamiany.

Przykład-2: Zamień wszystko po dopasowaniu za pomocą wzorca

Następujące polecenie wyszuka słowo „grzmotnąć' globalnie w ciągu i zastąp wszystko słowem, jeśli słowo istnieje w ciągu. 'sol' jest tutaj używane do wyszukiwania globalnego.

$ echo "Lubię programowanie w bashu" | sed "s/bash.*/skrypt Pythona/g"

Następujące dane wyjściowe pojawią się po uruchomieniu polecenia. Tutaj 'bash' istnieje w środku ciągu, a zamiana została wykonana.

Zastąp wszystko po dopasowaniu w pliku:

Cała zawartość określonego wiersza lub wiele wierszy lub pozostałe wiersze pliku po dopasowaniu można zastąpić za pomocą 'sed' Komenda. Utwórz plik tekstowy o nazwie frekwencja.tekst z następującą treścią, aby przetestować przykłady pokazane w tej sekcji.

frekwencja.tekst

1108885 jest obecny
1999979 jest obecny
1769994 jest nieobecny
1105656 jest nieobecny
1455999 jest nieobecny

Przykład -3: Zamień całą zawartość z wiersza pliku po dopasowaniu

Następujące polecenie „sed” wyszuka numer 1769994 w pliku, a wszystko z numerem zostanie zastąpione tekstem „1586844 jest obecny”, jeśli numer istnieje w dowolnym wierszu pliku.

$ przynależność kota.tekst
$ sed "s/1769994.*/1586844 jest obecny/" frekwencja.tekst

Następujące dane wyjściowe pojawią się podczas uruchamiania poleceń. Tutaj numer wyszukiwania znajduje się w trzecim wierszu pliku, a podmiana została wykonana.

Przykład -4: Zamień całą zawartość z wielu wierszy pliku po dopasowaniu

Następujące polecenie sed pokazuje użycie zmiennej $PARTITION_COLUMN do zastąpienia wielu wierszy z pliku. Polecenie przeszuka „110” na początku każdego wiersza pliku i zamieni wszystko na „110” tekstem „Nieprawidłowy wpis”, w którym zostanie znaleziony pasujący tekst.

$ frekwencja kota.tekst
$ sed "s/^110.* $PARTITION_COLUMN.*/Nieprawidłowy wpis/" frekwencja.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. „110” istnieje w dwóch wierszach pliku, które zostały zastąpione tekstem zastępującym.

Przykład-5: Zastąp całą zawartość wiersza pliku za pomocą „c” po dopasowaniu

Następujące 'sedPolecenie ' pokazuje użycie 'do'zamienić wszystko po meczu. Tutaj 'do' oznacza zmianę. Polecenie wyszuka słowo ”teraźniejszość' w pliku i zastąp całą linię tekstem, 'Ta linia jest zastąpiona' jeśli słowo istnieje w dowolnym wierszu pliku.

$ frekwencja kota.tekst
$ sed '/obecny/c Ta linia jest zastąpiona ' frekwencja.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Słowo „obecny” znajduje się w pierwszych dwóch wierszach pliku, a te dwa wiersze zostały zastąpione tekstem zastępującym.

Przykład-6: Zamień całą zawartość z wiersza pliku na podstawie wzorca początkowego i końcowego

Czasami konieczne jest zastąpienie tekstu na podstawie wzorca początkowego i końcowego. Poniższe polecenie 'sed' pokazuje sposób definiowania wzorców początkowych i końcowych w celu zastąpienia wierszy z pliku. Polecenie przeszuka te wiersze w pliku, które zaczynają się od numeru 110 i kończą słowem „nieobecny” i zastąpi wszystko słowem „zastąpiono” w miejscach, w których wzorce pasują.

$ frekwencja kota.tekst
$ sed -e 's/^110.*brak $/zastąpiony/g' frekwencja.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Tutaj pierwszy i czwarty wiersz zaczynają się od liczby 110, ale słowo „nieobecny” występuje tylko w czwartym wierszu. Tak więc czwarty wiersz pliku został zastąpiony tekstem zastępującym replacing.

Wniosek:

Polecenie „sed” to bardzo potężne narzędzie systemu Linux do wykonywania różnych typów zadań związanych z przetwarzaniem tekstu. Zadanie zastępowania oparte na dopasowanym wzorcu jest omówione w tym samouczku przy użyciu różnych typów wzorców w poleceniu 'sed'. $PARTITION_COLUMN, 'c' i '.*' jest używany w tym samouczku, aby zastąpić całą linię pliku, w której istnieje pasujący wzorzec. Pokazano tu zastosowania niektórych znaków definiujących wzorce, takich jak „^” i „$”. Istnieje wiele innych znaków definiujących wzorzec w wyrażeniu regularnym do celów wyszukiwania. Mam nadzieję, że ten samouczek pomoże czytelnikowi poznać podstawy zastępowania wszystkiego z pliku po meczu.

Gry Top 10 Games to Play on Ubuntu
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
Gry 5 najlepszych gier zręcznościowych dla systemu Linux
5 najlepszych gier zręcznościowych dla systemu Linux
W dzisiejszych czasach komputery to poważne maszyny używane do gier. Jeśli nie możesz uzyskać nowego wysokiego wyniku, będziesz wiedział, o co mi chod...
Gry Bitwa o Wesnoth 1.13.6 Wydanie rozwojowe
Bitwa o Wesnoth 1.13.6 Wydanie rozwojowe
Bitwa o Wesnoth 1.13.6 wydana w zeszłym miesiącu jest szóstą wersją rozwojową w 1.13.Seria x i zapewnia szereg ulepszeń, w szczególności w interfejsie...