sed

Kako zamijeniti posljednju pojavu pomoću 'sed'

Kako zamijeniti posljednju pojavu pomoću 'sed'
Naredba 'sed' koristi se u Linuxu za razne vrste tekstualnih operacija, poput umetanja, brisanja, zamjene itd. Pomoću naredbe 'sed' lako se mogu izvršiti različite vrste zamjenskih zadataka. Bilo koji zamjenski zadatak može se obaviti na temelju teksta ili uzorka koji se traži. Tekst ili uzorak koji se traži mogu se pojaviti više puta u nizu ili datoteci u kojoj će se pretraga obaviti. Kako možete zamijeniti posljednju pojavu teksta ili uzorka koji se traži, prikazano je u ovom vodiču.

Zamijenite posljednju pojavu teksta u nizu:

Ovaj odjeljak pokazuje kako se posljednja pojava uzorka pretraživanja u nizu može zamijeniti upotrebom naredbe 'sed'.

Primjer-1: Zamijenite posljednju pojavu riječi na temelju uzorka

Sljedeća naredba 'sed' pretražit će riječ 'PHP' u nizu i zamijenite riječ za pretraživanje riječju 'AngularJS' ako riječ postoji u nizu.

$ echo "Java PHP Bash Python JavaScript PERL PHP Laravel" |
sed 's / \ (.* \) PHP / \ 1AngularJS / '

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Evo, riječ 'PHP' postoji dva puta u nizu, a posljednja pojava zamijenjena je riječju ' KutniJS'.

Primjer 2: Zamijenite posljednju pojavu uzorka temeljenog na znamenkama

Sljedeća naredba 'sed' pretražit će bilo koju znamenku u nizu i zamijeniti zadnju znamenku brojem 9.

$ echo "Prva brojačka vrijednost 2. Druga brojačka vrijednost 4 "|
sed 's / \ (.* \) [0-9]) * / \ 19 / '

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Ovdje se znamenka pojavljuje dva puta u nizu i zadnja znamenka, 4, je zamijenjen brojem 9.

Primjer-3: Zamijenite zadnju znamenku broja na temelju uzorka

Sljedeća naredba 'sed' zamijenit će posljednju znamenku koja postoji u vrijednosti niza vrijednošću dvostruke nule (0 0).

$ echo "Cijena proizvoda je 500 USD."| sed 's / \ (.* \) [0-9] / \ 100 / '

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Ovdje, 500 postoji u vrijednosti niza. Dakle, prema naredbi za zamjenu, zadnja nula od 500 je zamijenjena s dvije dvostruke nule, a zamijenjena vrijednost je 5000.

Primjer 4: Zamijenite posljednju pojavu riječi drugom riječju

Sljedeća naredba 'sed' pretražit će riječ 'Lipanj' u nizu i zamijenite posljednju pojavu riječi vrijednošću, 'Svibanj'.

$ printf "% s \ n" siječanj veljača lipanj travanj lipanj prosinac | tr '\ n' "|
sed 's / \ (.* \) Lipanj / \ 1.maj / '| tr "'\ n'

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Evo, riječ 'Lipanj' postoji dva puta u nizu, a posljednja pojava zamijenjena je riječju 'Svibanj'.

Zamijenite posljednju pojavu teksta u datoteci:

Stvorite tekstualnu datoteku s imenom Prodajni.txt sa sljedećim sadržajem za testiranje naredbe 'sed' koja se koristi u ovom dijelu vodiča za zamjenu posljednjeg pojavljivanja teksta na temelju uzorka.

Prodajni.txt

Mjesec Godina Iznos
Siječnja 2018. 200000 američkih dolara
Ožujka 2019. 300000 USD
Travnja 2019. 150000 USD
Ožujka 2020. 350000 USD
Svibanj 2019. 210000 USD
Siječnja 2020. 240000 dolara

Primjer 5: Zamijenite posljednju pojavu riječi drugom riječju

Sljedeća naredba 'sed' pretražit će riječ 'Siječnja'u datoteci i zamijenite posljednju pojavu ove riječi riječju, 'Srpanj'.

$ mačka Prodaja.txt
$ sed '$ s / siječanj / srpanj /' Prodaja.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Riječ 'Siječanj' pojavljuje se dva puta u datoteci. Posljednja pojava koja postoji u 7th redak datoteke zamijenjen je riječju 'Srpanj'u izlazu.

Primjer-6: Zamijenite posljednju pojavu broja drugim brojem

'tak' naredba koristi se za preokretanje sadržaja datoteke. 'tak' naredba se koristi s naredbom 'sed' u sljedećoj naredbi za zamjenu posljednjeg pojavljivanja '2019'uz riječ, '2017'.

$ mačka Prodaja.txt
$ tac Prodaja.txt | sed '0, / 2019 / s / 2019/2017 /' | tac

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Evo, vrijednost godine, '2019'pojavljuje se tri puta u datoteci. Prvi, 'tak' naredba je preokrenula sadržaj datoteke i poslala izlaz u datoteku 'sed' naredba za zamjenu prvog pojavljivanja '2019' što je posljednja pojava u datoteci prema vrijednosti godine, '2017'. Nakon zamjene, izlaz je poslan na 'tak' naredba za ponovno vraćanje izlaza. Na taj način, posljednja pojava '2019'zamijenjena je vrijednošću, '2017'.

Primjer 7: Zamijenite sve u retku na temelju posljednjeg pojavljivanja riječi

Sljedeće 'sed' naredba će zamijeniti redak tekstom razdvojenim karticom (\ t) gdje redak počinje nizom 'Ožu' posljednji put u datoteci.

$ mačka Prodaja.txt
$ tac Prodaja.txt | sed '0, / ^ ožu.* / s / ^ ožu.* / Srpanj \ t \ t2018 \ t 400000 $ / '| tac

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Dva retka u datoteci započinju nizom, 'Ožu', i posljednja pojava ovog niza pojavljuje se u 5th crta. Prvi 'tak' naredba je korištena za preokretanje sadržaja datoteke i poslala je izlaz u 'sed ' naredba. 'sed'naredba je zamijenila redak tekstom,'Srpnja 2018. 400000 USD'gdje je prvi put pronađen niz za pretraživanje. Izlaz od 'sed'naredba je poslana na 'tak' naredba da se preokrene izlaz koji je glavni sadržaj datoteke.

Zaključak:

Naredba 'sed' može se koristiti za zamjenu bilo kojeg dijela niza ili retka datoteke na različite načine pomoću obrazaca regularnih izraza. Ovaj je vodič pokazao načine kako zamijeniti posljednju pojavu teksta koji se traži u nizu ili datoteci pomoću više naredbi 'sed'. Kako se naredba 'tac' može upotrijebiti s naredbom 'sed' za zamjenu posljednjeg pojavljivanja teksta za pretraživanje, također je prikazano u ovom vodiču. Ali sve ovdje korištene naredbe privremeno će generirati izlaz. Morate upotrijebiti opciju '-i' s naredbom 'sed' da biste trajno promijenili sadržaj datoteke na temelju uzorka.

Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...
Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...
Kako obrnuti smjer pomicanja miša i dodirnih pločica u sustavu Windows 10
Miš i Dodirna pločaRačunarstvo ne samo da olakšava, već i učinkovitije i oduzima puno vremena. Ne možemo zamisliti život bez ovih uređaja, ali činjeni...