Wymień ostatnie wystąpienie tekstu w ciągu:
Ta sekcja pokazuje, w jaki sposób ostatnie wystąpienie wzorca wyszukiwania w ciągu można zastąpić za pomocą polecenia „SED”.
Przykład-1: Wymień ostatnie wystąpienie słowa opartego na wzorze
Poniższe polecenie „sed” przeszuka słowo „Php” w ciągu i wymień wyszukiwający słowo słowem „Angularjs” Jeśli słowo istnieje w ciągu.
$ echo "Java php bash python JavaScript Perl php laravel" |
sed 's/\ (.*\) Php/\ 1angularjs/'
Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj, słowo „Php” istnieje dwa razy w ciągu, a ostatnie zdarzenie zostało zastąpione słowem ' Angularjs'.
Przykład-2: Wymień ostatnie występowanie wzoru opartego na cyfrowym
Poniższe polecenie „SED” przeszukie dowolną cyfrę w ciągu i zastąpi ostatnią cyfrę liczbą 9.
$ echo "Pierwsza wartość licznika 2. Druga wartość licznika 4 "|
sed 's/\ (.*\) [0-9])*/\ 19/'
Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj cyfra pojawia się dwa razy w ciągu i ostatniej cyfrze, 4, został zastąpiony liczbą 9.
Przykład-3: Wymień ostatnią cyfrę liczby na podstawie wzoru
Poniższe polecenie „SED” zastąpi ostatnią cyfrę, która istnieje w wartości ciągu według wartości przez podwójne zero (0 0).
$ echo „Cena produktu wynosi 500 USD."| sed 's/\ (.*\) [0-9]/\ 100/'
Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj, 500 istnieje w wartości ciągu. Tak więc, zgodnie z poleceniem zastępczym, ostatnie zero 500 został zastąpiony dwoma podwójnymi zerami, a wymieniona wartość to 5000.
Przykład-4: Zastąp ostatnie wystąpienie słowa innym słowem
Poniższe polecenie „sed” przeszuka słowo „Jun” w ciągu i zastąp ostatnie wystąpienie słowa wartością, 'Móc'.
$ printf "%s \ n" styczeń lutego czerwca czerwca grudnia | tr '\ n' "|
sed 's/\ (.*\) Jun/\ 1may/'| Tr "'\ n'
Po uruchomieniu polecenia pojawi się następujące dane wyjściowe. Tutaj, słowo „Jun” istnieje dwa razy w ciągu, a ostatnie zdarzenie zostało zastąpione słowem 'Móc'.
Wymień ostatnie wystąpienie tekstu w pliku:
Utwórz plik tekstowy o nazwie Obroty.tekst z następującą zawartością do przetestowania polecenia „SED” użytego w tej części samouczka do zastąpienia ostatniego wystąpienia tekstu na podstawie wzoru.
Obroty.tekst
Kwota roku miesiącaPrzykład-5: Zastąp ostatnie wystąpienie słowa innym słowem
Poniższe polecenie „sed” przeszuka słowo 'Styczeń„W pliku i zastąp ostatnie wystąpienie tego słowa słowem, 'Lipiec'.
Sprzedaż CAT.tekst
$ sed '$ s/styczeń/lipiec/' sprzedaż.tekst
Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Słowo 'Styczeń' pojawia się dwa razy w pliku. Ostatnie zdarzenie, które istnieje w 7th Linia pliku została zastąpiona słowem 'Lipiec„W wyjściu.
Przykład-6: Wymień ostatnie występowanie liczby inną liczbą
„tac” Polecenie służy do odwrócenia zawartości pliku. „tac” polecenie jest używane z poleceniem „sed” w następującym poleceniu, aby zastąpić ostatnie wystąpienie „2019„Słowo, „2017”.
Sprzedaż CAT.tekst
Sprzedaż $ TAC.txt | SED '0,/2019/S/2019/2017/' | tac
Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Tutaj wartość roku, „2019„Pojawia się trzy razy w pliku. Pierwszy, „tac” Polecenie odwróciło zawartość pliku i wysłało wyjście do „sed” polecenie zastąpienia pierwszego wystąpienia „2019” który jest ostatnim zdarzeniem w pliku według wartości roku, „2017”. Po wymianie wyjście zostało wysłane do „tac” polecenie ponownie odwrócić wyjście. W ten sposób ostatnie wystąpienie '2019„Został zastąpiony wartością, „2017'.
Przykład-7: Wymień wszystko z linii na podstawie ostatniego wystąpienia słowa
Następujące „sed” Polecenie zastąpi linię na tablicę (\ t), w którym linia zaczyna się od ciągu 'Zniszczyć' po raz ostatni w pliku.
Sprzedaż CAT.tekst
Sprzedaż $ TAC.txt | sed '0,/^mar.*/s/^mar.*/Lipiec \ t \ t2018 \ t 400000 $/ '| tac
Następujące dane wyjściowe pojawią się po uruchomieniu poleceń. Dwa wiersze w pliku zaczynają się od ciągu, 'Zniszczyć', a ostatnie wystąpienie tego ciągu pojawia się w 5th linia. Pierwszy „tac” Polecenie zostało użyte do odwrócenia zawartości pliku i wysłania danych wyjściowych do 'sed ' Komenda. 'sed„Polecenie zastąpiło wiersz tekstem”Jully 2018 400000 $„gdzie po raz pierwszy znaleziono ciąg wyszukiwania. Wyjście „sed„polecenie zostało wysłane do „tac” Poleć ponownie, aby odwrócić dane wyjściowe, które jest główną zawartością pliku.
Wniosek:
Polecenie „SED” można użyć do zastąpienia dowolnej części ciągu lub wiersza pliku na różne sposoby, używając wzorców wyrażeń regularnych. Ten samouczek pokazał, jak zastąpić ostatnie wystąpienie tekstu wyszukiwania w ciągu lub pliku za pomocą wielu poleceń „sed”. Jak można użyć polecenia „TAC” z poleceniem „SED” w celu zastąpienia ostatniego wystąpienia tekstu wyszukiwania, zostało również pokazane w tym samouczku. Ale wszystkie użyte tutaj polecenia tymczasowo wygenerują wyjście. Musisz użyć opcji „-i” z poleceniem „SED”, aby zmienić zawartość pliku na stałe na podstawie wzoru.