Jak wymienić wszystko po wzorze za pomocą polecenia „sed”

Jak wymienić wszystko po wzorze za pomocą polecenia „sed”

Zadania zastępcze można wykonać w Linux na różne sposoby. Polecenie „SED” jest jednym ze sposobów wykonania zadania zastępowania. To polecenie można użyć do wymiany tekstu w ciągu lub pliku za pomocą innego wzoru. Jak możesz wymienić wszystko po dopasowywaniu wzoru za pomocą polecenia „SED”, jest pokazany w tym samouczku.

Wymień wszystko po meczu w ciągu:

Jak w tej sekcji tego samouczka pokazano, w jaki sposób część ciągu można wymienić na podstawie dopasowania i $ parition_column. Ale ta zmienna działa, jeśli wzór pasuje do dowolnego słowa na początku lub środku łańcucha. Nie zastąpi tekstu, jeśli wzór będzie pasował do ostatniego słowa łańcucha.

Przykład-1: Wymień wszystko po meczu za pomocą $ parition_column

Poniższe polecenie przeszuka postać „A”, a pozostała część po „A” zostanie zastąpiona tekstem „Popularna strona blogowa”. $ Parition_column.* służy do zdefiniowania pozostałej części po postaci „A”.

$ echo „Linuxhint to strona internetowa” | sed "s/a $ parition_column.*/popularna strona blogowa/"

Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj „strona internetowa” została zastąpiona przez „popularną stronę blogów”.


Poniższy wzór przeszuka słowo 'sieć„w ciągu i wymień pozostałą część”sieć„po tekście”Popularna strona blogowa„Jeśli mecz istnieje i”sieć„Nie jest częścią ostatniego słowa łańcucha.

$ echo „Linuxhint to strona internetowa” | sed "s/web.* $ Parition_column.*/popularna strona blogowa/"

Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj „strona internetowa” to ostatnie słowo łańcucha i z tego powodu nie dokonano zastępcy.

Przykład-2: Wymień wszystko po dopasowaniu za pomocą wzoru

Poniższe polecenie przeszuka słowo 'grzmotnąć„Globalnie w ciągu i zastąp wszystko słowem, jeśli słowo istnieje w ciągu. 'G'jest używany tutaj do globalnego wyszukiwania.

$ echo „Lubię programowanie bash” | sed "s/bash.*/Python Script/G ”

Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj „Bash” istnieje na środku sznurka, a wymiana została wykonana.

Wymień wszystko po meczu w pliku:

Cała zawartość określonej linii lub wielu linii lub pozostałych linii pliku po dopasowaniu można wymienić za pomocą 'sed' Komenda. Utwórz plik tekstowy o nazwie frekwencja.tekst z następującą zawartością do przetestowania przykładów pokazanych w tym rozdziale.

frekwencja.tekst

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

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

Poniższe polecenie „SED” przeszukie numer 1769994 w pliku, a wszystko z numerem zostanie zastąpione tekstem, „1586844 jest obecne”, jeśli liczba istnieje w dowolnym wierszu pliku.

$ cat Allendence.tekst
$ sed "s/1769994.*/1586844 jest obecna/„frekwencja.tekst

Pojawi się następujące dane wyjściowe z uruchomieniem poleceń. Tutaj numer wyszukiwania istnieje w trzecim wierszu pliku, a wymiana została wykonana.

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

Poniższe polecenie „SED” pokazuje użycie zmiennej $ parition_column do wymiany wielu linii z pliku. Polecenie będzie przeszukiwać „110” na początku każdego wiersza pliku i zastąpi wszystko na „110” tekstem „nieprawidłowy wpis”, w którym zostanie znaleziony pasujący tekst.

Frekwencja CAT.tekst
$ sed "s/^110.* $ Parition_column.*/Nieprawidłowe wejście/”.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 przez zastępujący tekst.

Przykład-5: Wymień całą zawartość z wiersza pliku za pomocą „C” po dopasowaniu

Następujące 'sed„Polecenie pokazuje użycie”C„Aby wymienić wszystko po meczu. Tutaj, 'C„Wskazuje zmianę. Polecenie przeszuka słowo 'obecny„W pliku i wymień wszystko z linii tekstem”Ta linia jest zastąpiona„Jeśli słowo istnieje w dowolnym wierszu pliku.

Frekwencja CAT.tekst
$ sed '/prezent/c ta linia została wymieniona ”.tekst

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

Przykład-6: Wymień całą zawartość z wiersza pliku opartego na wzorze początkowym i końcowym

Czasami wymagane jest zastąpienie tekstu na podstawie wzoru początkowego i końcowego. Poniższe polecenie „SED” pokazuje sposób zdefiniowania wzorców początkowych i końcowych w celu wymiany linii z pliku. Polecenie będzie przeszukiwać te wiersze w pliku, który zaczyna się od numeru 110, a kończy słowem „nieobecne” i zastąpicie wszystko słowem „zastąpionym”, w którym pasują wzorce.

Frekwencja CAT.tekst
$ sed -e 's/^110.*Brak $/zastąpiony/g frekwencji.tekst

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Tutaj pierwsze i czwarte wiersze zaczynają się od numeru 110, ale słowo „nieobecne” istnieje tylko w czwartej linii. Tak więc czwarty wiersz pliku został zastąpiony przez zastępujący tekst.

Wniosek:

Polecenie „SED” jest bardzo potężnym narzędziem Linux do wykonywania różnych rodzajów zadań związanych z przetwarzaniem tekstu. Zadanie zastępcze oparte na dopasowanym wzorze jest omawiane w tym samouczku, używając różnych rodzajów wzorców w poleceniu „SED”. $ Parition_column, „c” i '.*'jest używany w tym samouczku, aby zastąpić wszystko z wiersza pliku, w którym istnieje pasujący wzór. Pokazano tutaj zastosowania niektórych znaków definiujących wzorców, takich jak „^” i „$”. Istnieje wiele innych znaków, aby zdefiniować wzór w wyrażeniu regularnym w celu wyszukiwania. Mam nadzieję, że ten samouczek pomoże czytelnikowi poznać podstawy zastąpienia wszystkiego z pliku po meczu.