sed

Kaip įterpti eilutę po rungtynių naudojant „sed“?

Kaip įterpti eilutę po rungtynių naudojant „sed“?

Viena iš naudingų ir galingų „Linux“ komandų yra „sed“ komanda. Ši komanda naudojama įvairių tipų „Linux“ užduotims atlikti, pvz., Įterpti, atnaujinti ir ištrinti tam tikrą tekstą ar eilutę, atsižvelgiant į atitiktį. Naudodami komandą „sed“, galite įterpti tekstą į eilutę ar failą įvairiais būdais.

Kaip įterpti eilutę radus atitikmenį eilutėje ar eilutėje, parodyta šioje pamokoje.

Įterpkite eilutę į eilutę

Naudojant komandą „sed“, po bet kurios eilutės reikšmės galima įterpti naują eilutę, jei komandoje apibrėžtas raštas sutampa su kuria nors eilutės vertės dalimi.

Šis pavyzdys rodo, kaip po eilutės vertės galima pridėti naują eilutę, jei tam tikra eilutė yra bet kurioje eilutės reikšmėje.

1 pavyzdys: Įrašykite eilutę į eilutę radę atitikmenį

Ši komanda ieškos eilutėje „inng“, „Man patinka programuoti“ ir teksto eilutėje: „Ar jums patinka programuoti?“Bus įrašyta po eilute, jei ieškoma eilutė yra.

Čia simbolis „&“ naudojamas įterpti eilutę po eilutės.

$ echo "Man patinka programuoti."| sed 's / inng / & Ar jums patinka programuoti?/ '

Šis išvestis rodo, kad eilutėje nėra „inng“ ir po eilutės nėra įterpiama eilutė.


Ši komanda ieškos „ing.“Eilutėje„ Man patinka programuoti “ir jis egzistuoja eilutėje.

$ echo "Man patinka programuoti."| sed 's./ & Ar jums patinka programuoti?/ '

Šis išvestis rodo, kad po eilutės pridedama nauja eilutė.

Įterpkite eilutę į failą

Yra du būdai įterpti eilutę po to, kai rasta atitiktis faile, kuris yra paminėtas žemiau. Kai komanda „sed“ naudojama be „-i“ parinkties, failo turinys išliks nepakitęs, o išvestyje bus rodomas failo turinys su įterpta nauja eilute. Norėdami visam laikui įterpti naują eilutę į failą, jei faile yra atitikimo šablonas, turite naudoti parinktį „-i“ su „sed“ komanda.

A. „Sed“ naudojimas komandoje „sed“

„A“ gali būti naudojamas „sed“ paieškos šablone, norint pridėti vieną ar daugiau failo eilučių po eilutės, kurioje sutampa ieškos modelis, arba po tam tikro eilutės numerio.

B. Naudojant „i“ komandoje „sed“

„I“ gali būti naudojamas komandos „sed“ paieškos šablone, norint įterpti vieną ar daugiau eilučių į failą prieš eilutę, kurioje sutampa ieškos modelis.

Įterpkite eilutę (-es) į failą pagal šabloną:

Sukurkite tabuliu atskirtą tekstinį failą pavadinimu Produktai.txt su tokiu turiniu, kad komandoje „sed“ būtų parodyti aukščiau nurodytos vėliavos naudojimo būdai.

Produktai.txt

ID vardas
01 Plakti grietinėlė
02 kakavos milteliai
03 Cukrus
04 Kiaušinis
05 Miltai

2 pavyzdys: Įterpkite eilutę po tam tikru eilutės numeriu naudodami „a“

Šios komandos parodo, kaip galima pridėti naują eilutę po tam tikro produktų eilutės skaičiaus.txt failas, pagrįstas „sed“ komandoje naudojamu šablonu.

Čia pirmoji komanda parodys esamą failo turinį. Komanda „sed“ po pirmomis dviem failo eilutėmis pridės tekstą „b01 kepimo milteliai“. Paskutinė komanda naudojama norint patikrinti, ar failo turinys pakeistas, ar ne.

$ kačių produktai.txt
$ sed '2 a b01 \ tKepimo milteliai' produktai.txt
$ kačių produktai.txt

Šis išėjimas pasirodys paleidus aukščiau nurodytą komandą.

3 pavyzdys: Įterpkite eilutę po paskutinės eilutės naudodami „a“

Ši komanda rodo, kaip pridėti naują eilutę po paskutinės failo eilutės. Pirmoji ir paskutinė komanda rodo esamą failo turinį prieš ir po „sed“ komandos vykdymo. Simbolis „$“ naudojamas komandos „sed“ šablone, norint paminėti paskutinę failo eilutę.

$ kačių produktai.txt
$ sed '$ a b01 \ tKepimo milteliai' produktai.txt
$ kačių produktai.txt

Šis išėjimas pasirodys paleidus aukščiau nurodytą komandą.

4 pavyzdys: Įterpkite eilutę bet kurioje failo vietoje, suderinę šabloną naudodami „a“

Ši komanda „sed“ parodo, kaip naują eilutę galima pridėti bet kurioje failo vietoje, atsižvelgiant į atitikimo modelį. Šablonas, naudojamas komandoje „sed“, ieškos bet kurios eilutės, prasidedančios „s01“, ir po jos pridės naują eilutę. Ketvirtoji failo eilutė prasideda „s01“ ir po šios eilutės bus įterpta nauja eilutė.

$ kačių produktai.txt
$ sed '/ ^ s01.* / a b01 \ tKepimo miltelių produktai.txt
$ kačių produktai.txt

Paleidus komandą pasirodys toks išvestis.


Ši „sed“ komanda ieškos bet kurios eilutės, kurios pabaiga yra „Milteliai“, ir po jos įterps naują eilutę. Trečioji failo eilutė baigiasi „Milteliai“. Taigi, po šios eilutės bus įterpta nauja eilutė.

$ kačių produktai.txt
$ sed '/ milteliai $ / a b01 \ tKepimo milteliai' produktai.txt
$ kačių produktai.txt

Paleidus minėtas komandas pasirodys toks išvestis.

5 pavyzdys: įterpkite kelias eilutes po atitikimo šablonu naudodami „a“

Ši „sed“ komanda rodo, kaip failo turinyje pridėti kelias eilutes, atsižvelgiant į atitikimo modelį.

Čia po trečiosios eilutės bus pridėtos dvi eilutės pagal modelį.

$ kačių produktai.txt
$ sed '/ ^ [a-c] / a b01 \ tKepimo milteliai \ nb02 \ tKepimo sodos produktai.txt
$ kačių produktai.txt

Paleidus minėtas komandas pasirodys toks išvestis.

6 pavyzdys: įterpkite eilutę suderinę modelį naudodami „I“

$ kačių produktai.txt
$ sed '/ cream / i b01 \ tKepimo milteliai' produktai.txt
$ kačių produktai.txt

Paleidus minėtas komandas pasirodys toks išvestis.

7 pavyzdys: Įterpkite eilutę po atitikimo šablonu naudodami parinktį „-i“

Ši komanda „sed“ parodo, kaip visam laikui pakeisti failo turinį. Parinktis „i“ naudojama kartu su komanda „sed“, kad į failą įterptų naują eilutę pagal modelį.

$ kačių produktai.txt
$ sed -i '/ e $ / a g01 \ tGhee' produktai.txt
$ kačių produktai.txt

Paleidus minėtas komandas pasirodys toks išvestis.

Išvada:

Dviejų ar daugiau eilučių įterpimas į failą naudojant komandą „sed“ su šablonu buvo parodytas šioje pamokoje, kad skaitytojas galėtų padėti šią komandą laikinai arba visam laikui įterpti eilučių, remdamasis šablonu.

Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...
Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...