Asenda stringi teksti viimane esinemine:
See jaotis näitab, kuidas stringi otsimismustri viimast esinemist saab käsu 'sed' abil asendada.
Näide 1: asendage sõna viimane esinemine mustri põhjal
Järgmine käsk 'sed' otsib sõna 'PHP' stringis ja asendage otsitav sõna sõnaga 'NurkJS' kui sõna on stringis olemas.
$ echo "Java PHP Bash Python JavaScripti PERL PHP Laravel" |sed / \ (.* \) PHP / \ 1nurkJS / '
Pärast käsu käivitamist ilmub järgmine väljund. Siin see sõna 'PHP' eksisteerib stringis kaks korda ja viimane kord on asendatud sõnaga ' NurgaJS".
Näide 2: asendage viimane numbril põhinev muster
Järgmine käsk 'sed' otsib stringis suvalist numbrit ja asendab viimase numbri numbriga 9.
$ echo "Esimene loenduri väärtus 2. Teine loenduri väärtus 4 "|sed / \ (.* \) [0–9]) * / \ 19 / '
Pärast käsu käivitamist ilmub järgmine väljund. Siin ilmub string stringis kaks korda ja viimane number, 4, on asendatud numbriga 9.
Näide 3: asendage mustri põhjal numbri viimane number
Järgmine käsk „sed” asendab stringi väärtuses viimase numbri topelt nulliga (0 0).
$ echo "Toote hind on 500 dollarit."| sed 's / \ (.* \) [0–9] / \ 100 / 'Pärast käsu käivitamist ilmub järgmine väljund. Siin, 500 on stringi väärtuses olemas. Niisiis, asenduskäskluse järgi viimane null 500 on asendatud kahe topelt nulliga ja asendatud väärtus on 5000.
Näide 4: asendage sõna viimane esinemine teise sõnaga
Järgmine käsk 'sed' otsib sõna "Juuni" stringis ja asenda sõna viimane esinemine väärtusega, "Mai".
$ printf "% s \ n" Jaan Veeb Juun Apr Juuni Dets | tr '\ n' "|sed / \ (.* \) Juuni / \ 1mai / '| tr "'\ n'
Pärast käsu käivitamist ilmub järgmine väljund. Siin see sõna "Juuni" eksisteerib stringis kaks korda ja viimane esinemine on asendatud sõnaga "Mai".
Asendage failis teksti viimane esinemine:
Looge nimega tekstifail Müük.txt järgmise sisuga, et testida õpetuse selles osas kasutatud käsku „sed” mustri põhjal teksti viimase esinemise asendamiseks.
Müük.txt
Kuu Aasta summaJaanuar 2018 200 000 dollarit
Märts 2019 300 000 dollarit
Aprill 2019 150000 dollarit
Märts 2020 350000 dollarit
Mai 2019 210000 dollarit
Jaanuar 2020 240000 dollarit
Näide 5: asendage sõna viimane esinemine teise sõnaga
Järgmine käsk 'sed' otsib sõna "Jaanuar'ja asendage selle sõna viimane esinemine sõnaga, 'Juuli".
$ kassimüük.txt$ sed '$ s / jaanuar / juuli /' Müük.txt
Pärast käskude käivitamist ilmub järgmine väljund. Sõna "Jaanuar" ilmub faili kaks korda. Viimane juhtum, mis on olemas 7-sth faili rida on asendatud sõnaga 'Juuli'väljundis.
Näide 6: asendage numbri viimane esinemine teise numbriga
"tac" käsku kasutatakse faili sisu ümberpööramiseks. "tac" käsku kasutatakse järgmises käsus käsuga 'sed', et asendada viimane käsk '2019'sõnaga, "2017".
$ kassimüük.txt$ tac Müük.txt | sed '0, / 2019 / s / 2019/2017 /' | tac
Pärast käskude käivitamist ilmub järgmine väljund. Siin aasta väärtus, '2019'ilmub failis kolm korda. Esimene, "tac" käsk on muutnud faili sisu ja saatnud väljundi "sed" käsk asendada esimene esinemine '2019' mis on failis viimane esinemine aasta väärtuse järgi, "2017". Pärast väljavahetamist on väljund saadetud "tac" käsk väljundi uuesti tagasi pöörata. Sel viisil on viimane2019. aasta'on asendatud väärtusega, '2017".
Näide 7: asendage rea kõik sõna viimase esinemise põhjal
Järgnev "sed" käsk asendab rea vahekaardiga (\ t) eraldatud tekstiga, kus rida algab stringiga "Märts" failis viimast korda.
$ kassimüük.txt$ tac Müük.txt | sed '0, / ^ märt.* / s / ^ märts.* / Juuli \ t \ t2018 \ t $ 400000 / '| tac
Pärast käskude käivitamist ilmub järgmine väljund. Kaks faili rida algavad stringiga, "Märts", ja selle stringi viimane esinemine ilmub 5th rida. Esimene "tac" käsku on kasutatud faili sisu vastupidiseks muutmiseks ja väljund saadeti 'sed ' käsk. "sed'käsk on rea asendanud tekstiga,'Juuli 2018 400 000 dollarit'kus otsitav string esimest korda leiti. Väljund the 'sed'käsk on saadetud "tac" käsk uuesti faili põhisisuks oleva väljundi vastupidiseks muutmiseks.
Järeldus:
'sed' käsku saab kasutada mis tahes stringi või failirea asendamiseks erineval viisil, kasutades regulaaravaldise mustreid. See õpetus näitas viise, kuidas asendada stringi või faili otsitava teksti viimane kordus mitme „sed” käsu abil. Selles juhendis on näidatud ka seda, kuidas käsku 'tac' saab käsuga 'sed' asendada otsitava teksti viimase esinemise korral. Kuid kõik siin kasutatavad käsud genereerivad väljundi ajutiselt. Faili sisu püsivaks muutmiseks mustri põhjal peate kasutama valikut '-i' käsuga 'sed'.