Zamenjajte zadnji pojav besedila v nizu:
Ta odsek prikazuje, kako lahko z uporabo ukaza 'sed' nadomestimo zadnji pojav iskalnega vzorca v nizu.
Primer-1: Zamenjajte zadnji pojav besede na podlagi vzorca
Naslednji ukaz 'sed' bo poiskal besedo 'PHP' v nizu in zamenjajte iskalno besedo z besedo 'AngularJS' če beseda obstaja v nizu.
$ echo "Java PHP Bash Python JavaScript PERL PHP Laravel" |sed 's / \ (.* \) PHP / \ 1AngularJS / '
Po zagonu ukaza se prikaže naslednji izhod. Tukaj, beseda 'PHP' obstaja dvakrat v nizu, zadnji pojav pa je nadomestila beseda ' Kotni JS".
Primer-2: Zamenjajte zadnji pojav cifrov
Naslednji ukaz 'sed' bo poiskal katero koli številko v nizu in nadomestil zadnjo številko s številko 9.
$ echo "Prva vrednost števca 2. Druga vrednost števca 4 "|sed 's / \ (.* \) [0-9]) * / \ 19 / '
Po zagonu ukaza se prikaže naslednji izhod. Tu se številka dvakrat prikaže v nizu in zadnja številka, 4, je bila nadomeščena s številko 9.
Primer 3: Zamenjajte zadnjo številko številke glede na vzorec
Naslednji ukaz 'sed' bo nadomestil zadnjo številko, ki obstaja v vrednosti niza, z vrednostjo z dvojno ničlo (0 0).
$ echo "Cena izdelka je 500 USD."| sed 's / \ (.* \) [0-9] / \ 100 / 'Po zagonu ukaza se prikaže naslednji izhod. Tukaj, 500 obstaja v vrednosti niza. Torej, glede na nadomestni ukaz, zadnja ničla 500 je bil nadomeščen z dvema dvojnima ničma, nadomeščena vrednost pa je 5000.
Primer 4: Zamenjajte zadnji pojav besede z drugo besedo
Naslednji ukaz 'sed' bo poiskal besedo 'Junij' v nizu in nadomestite zadnji pojav besede z vrednostjo, 'Maj'.
$ printf "% s \ n" januar februar junij april junij dec | tr '\ n' "|sed 's / \ (.* \) Junij / \ 1.maj / '| tr "'\ n'
Po zagonu ukaza se prikaže naslednji izhod. Tukaj, beseda 'Junij' obstaja dvakrat v nizu, zadnji pojav pa je nadomestila beseda 'Maj'.
Zamenjajte zadnji pojav besedila v datoteki:
Ustvarite besedilno datoteko z imenom Prodaja.txt z naslednjo vsebino za preizkus ukaza 'sed', uporabljenega v tem delu vadnice za nadomestitev zadnjega pojavljanja besedila na podlagi vzorca.
Prodaja.txt
Mesec Leto ZnesekJanuar 2018 200000 USD
Marec 2019 300000 USD
April 2019 150000 USD
Marec 2020 350000 USD
Maj 2019 210000 USD
Januar 2020 240000 USD
Primer 5: Zamenjajte zadnji pojav besede z drugo besedo
Naslednji ukaz 'sed' bo poiskal besedo 'Januar'v datoteki in nadomestite zadnji pojav te besede z besedo, 'Julij".
$ mačka Prodaja.txt$ sed '$ s / januar / julij /' Prodaja.txt
Po zagonu ukazov se prikaže naslednji izhod. Beseda 'Januar' se v datoteki prikaže dvakrat. Zadnji pojav, ki obstaja v 7th vrstica datoteke je bila nadomeščena z besedo 'Julij'v izhodu.
Primer 6: Zamenjajte zadnji pojav številke z drugo številko
'tac' ukaz se uporablja za obračanje vsebine datoteke. 'tac' ukaz se uporablja z ukazom 'sed' v naslednjem ukazu za nadomestitev zadnjega pojava '2019'z besedo, '2017'.
$ mačka prodaja.txt$ tac Prodaja.txt | sed '0, / 2019 / s / 2019/2017 /' | tac
Po zagonu ukazov se prikaže naslednji izhod. Tukaj je vrednost leta, '2019'se v datoteki trikrat prikaže. Prvi, 'tac' ukaz je obrnil vsebino datoteke in poslal izhod v datoteko 'sed' ukaz za zamenjavo prvega pojava '2019' kar je zadnji pojav v datoteki po vrednosti leta, '2017'. Po zamenjavi je bil izhod poslan na 'tac' ukaz, da znova obrnete izhod. Na ta način je zadnji pojav2019"je bil nadomeščen z vrednostjo, '2017".
Primer 7: Zamenjajte vse vrstice glede na zadnji pojav besede
Naslednji 'sed' ukaz bo vrstico zamenjal z besedilom, ločenim z zavihkom (\ t), kjer se vrstica začne z nizom 'Mar' zadnjič v datoteki.
$ mačka Prodaja.txt$ tac Prodaja.txt | sed '0, / ^ mar.* / s / ^ mar.* / Julij \ t \ t2018 \ t 400000 $ / '| tac
Po zagonu ukazov se prikaže naslednji izhod. Dve vrstici v datoteki se začneta z nizom, 'Mar', in zadnji pojav tega niza se prikaže v 5th črta. Prvi 'tac' ukaz je bil uporabljen za razveljavitev vsebine datoteke in je izhod poslal v 'sed ' ukaz. "sed'ukaz je vrstico zamenjal z besedilom,'Julij 2018 400000 USD'kjer je iskalni niz najden prvič. Rezultat "sedukaz je bil poslan na 'tac' znova ukaz za razveljavitev izhoda, ki je glavna vsebina datoteke.
Zaključek:
Ukaz 'sed' lahko uporabimo za nadomestitev katerega koli dela niza ali vrstice datoteke na različne načine z uporabo vzorcev regularnih izrazov. Ta vadnica je pokazala načine, kako nadomestiti zadnji pojav iskalnega besedila v nizu ali datoteki z uporabo več ukazov 'sed'. V tej vadnici je prikazano tudi, kako lahko ukaz 'tac' uporabimo z ukazom 'sed', da nadomestimo zadnji pojav iskalnega besedila. Toda vsi tukaj uporabljeni ukazi bodo začasno ustvarili izhod. Za trajno spreminjanje vsebine datoteke glede na vzorec morate uporabiti možnost '-i' z ukazom 'sed'.