sed

Kaip pakeisti paskutinį įvykį naudojant „sed“

Kaip pakeisti paskutinį įvykį naudojant „sed“
"sed" komanda naudojama "Linux" įvairioms teksto operacijoms, tokioms kaip įterpimas, ištrynimas, pakeitimas ir kt. Įvairių tipų pakeitimo užduotis galima atlikti lengvai naudojant komandą „sed“. Bet kokią pakeitimo užduotį galima atlikti remiantis ieškomu tekstu ar raštu. Paieškos tekstas ar šablonas gali atsirasti kelis kartus eilutėje ar faile, kuriame bus ieškoma. Kaip galite pakeisti paskutinį ieškomo teksto ar rašto atvejį, buvo parodyta šioje pamokoje.

Pakeiskite paskutinį eilutės teksto atvejį:

Šiame skyriuje parodyta, kaip paskutinį ieškos modelio eilutę galima pakeisti naudojant komandą „sed“.

1 pavyzdys: pakeiskite paskutinį žodžio atvejį pagal modelį

Ši „sed“ komanda ieškos žodžio „PHP“ eilutėje ir ieškantį žodį pakeiskite žodžiu „AngularJS“ jei eilutėje yra žodis.

"Java PHP Bash Python JavaScript PERL PHP Laravel" |
sedas / \ (.* \) PHP / \ 1AngularJS / '

Paleidus komandą pasirodys toks išvestis. Čia žodis „PHP“ eilutėje egzistuoja du kartus, o paskutinis atvejis pakeistas žodžiu „ KampinisJS".

2 pavyzdys: pakeiskite paskutinį skaitmenimis pagrįstą modelį

Ši „sed“ komanda ieškos bet kurio eilutės skaitmens ir pakeis paskutinį skaitmenį skaičiumi 9.

$ echo "Pirmoji skaitiklio vertė 2. Antrojo skaitiklio vertė 4 "|
sedas / \ (.* \) [0–9]) * / \ 19 / '

Paleidus komandą pasirodys toks išvestis. Čia skaitmuo eilutėje pasirodo du kartus ir paskutinis skaitmuo, 4, buvo pakeistas numeriu 9.

3 pavyzdys: pakeiskite paskutinį skaičiaus skaičių pagal modelį

Ši „sed“ komanda pakeis paskutinį skaitmenį, esantį eilutės vertėje, reikšme dvigubu nuliu (0 0).

$ echo "Produkto kaina yra 500 USD."| sed 's / \ (.* \) [0–9] / \ 100 / '

Paleidus komandą pasirodys toks išvestis. Čia, 500 yra eilutės vertėje. Taigi, pagal pakeitimo komandą, paskutinis 500 buvo pakeistas dviem dvigubais nuliais, o pakeista vertė yra 5000.

4 pavyzdys: Pakeiskite paskutinį žodžio atvejį kitu žodžiu

Ši „sed“ komanda ieškos žodžio „Birželis“ eilutėje ir pakeiskite paskutinį žodžio atvejį reikšme, 'Gegužė'.

$ printf "% s \ n" sausis vasaris birželis balandis birželis gruodis | tr '\ n' "|
sedas / \ (.* \) Birželis / \ 1Gegužė / '| tr "'\ n'

Paleidus komandą pasirodys toks išvestis. Čia žodis „Birželis“ eilutėje egzistuoja du kartus, o paskutinis įvykis buvo pakeistas žodžiu 'Gegužė'.

Pakeiskite paskutinį failo teksto atvejį:

Sukurkite tekstinį failą pavadinimu Pardavimai.txt su šiuo turiniu, norėdami išbandyti komandą „sed“, naudojamą šioje mokymo programos dalyje, kad pakeistumėte paskutinį teksto atvejį pagal šabloną.

Pardavimai.txt

Mėnuo Metų suma
2018 m. Sausio mėn. 200 000 USD
2019 m. Kovo mėn. 300 000 USD
2019 m. Balandžio mėn. 150000 USD
2020 m. Kovo mėn. 350000 USD
2019 m. Gegužė 210000 USD
2020 m. Sausio mėn. 240000 USD

5 pavyzdys: pakeiskite paskutinį žodžio atvejį kitu žodžiu

Ši „sed“ komanda ieškos žodžio „Sausis'ir pakeiskite paskutinį šio žodžio atvejį žodžiu, 'Liepa".

$ kačių pardavimai.txt
$ sed '$ s / sausis / liepa /' Pardavimai.txt

Paleidus komandas pasirodys toks išvestis. Žodis „Sausis“ faile rodomas du kartus. Paskutinis įvykis, esantis 7tūkst failo eilutė pakeista žodžiu „Liepa'išvestyje.

6 pavyzdys: Pakeiskite paskutinį skaičiaus atvejį kitu skaičiumi

„tac“ komanda naudojama failo turiniui pakeisti. „tac“ komanda naudojama kartu su komanda „sed“ šioje komandoje, kad būtų pakeistas paskutinis „2019 m'su žodžiu, „2017“.

$ kačių pardavimai.txt
$ tac Pardavimai.txt | sed '0, / 2019 / s / 2019/2017 /' | tac

Paleidus komandas pasirodys toks išvestis. Čia metų vertė, „2019 m'faile pasirodo tris kartus. Pirmas, „tac“ komanda pakeitė failo turinį ir išsiuntė išvestį į „sed“ komandą pakeisti pirmąjį „2019“ kuris yra paskutinis atvejis byloje pagal metų vertę, „2017“. Po pakeitimo išvestis buvo nusiųsta į „tac“ komanda dar kartą pakeisti išvestį. Tokiu būdu paskutinis „2019 m"pakeista reikšme, „2017 m".

7 pavyzdys: Pakeiskite viską eilutėje pagal paskutinį žodžio atvejį

Sekantis „sed“ komanda pakeis eilutę tabuliavimo ženklu (\ t) atskirtu tekstu, kur eilutė prasideda eilute „Mar“ paskutinį kartą byloje.

$ kačių pardavimai.txt
$ tac Pardavimai.txt | sed '0, / ^ Kov.* / s / ^ kovas.* / Liepa \ t \ t2018 \ t 400 000 USD / '| tac

Paleidus komandas pasirodys toks išėjimas. Dvi failo eilutės prasideda eilute, „Mar“, ir paskutinis šios eilutės atvejis pasirodo 5tūkst linija. Pirmas „tac“ komanda buvo naudojama norint pakeisti failo turinį ir išsiųsti išvestį į 'sed ' komandą. "sed„komanda pakeitė eilutę tekstu“,2018 m. Liepos mėn. 400 000 USD„kur ieškoma eilutė rasta pirmą kartą. Išvestis „sedkomanda buvo išsiųsta „tac“ komandą dar kartą pakeisti išvestį, kuri yra pagrindinis failo turinys.

Išvada:

„sed“ komanda gali būti naudojama bet kokiai eilutės ar failo eilutės daliai pakeisti įvairiais būdais, naudojant reguliaraus reiškinio šablonus. Ši pamoka parodė būdus, kaip pakeisti paskutinį ieškomo teksto eilutėje ar faile atvejį naudojant kelias „sed“ komandas. Kaip „tac“ komandą galima naudoti su „sed“ komanda, norint pakeisti paskutinį ieškomo teksto atvejį, taip pat buvo parodyta šioje pamokoje. Bet visos čia naudojamos komandos laikinai sugeneruos išvestį. Norėdami visam laikui pakeisti failo turinį pagal modelį, turite naudoti parinktį „-i“ su „sed“ komanda.

Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...
„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...