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

How Insert Line After Match Using Sed



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

Kaip įterpti eilutę radus atitikmenį eilutėje ar eilutėje, parodyta šiame vadove.







Įterpkite eilutę į eilutę

Nauja eilutė gali būti įterpta po bet kurios eilutės vertės naudojant komandą sed, jei komandoje apibrėžtas modelis atitinka bet kurią eilutės reikšmės dalį.



Šiame pavyzdyje parodyta, kaip galima pridėti naują eilutę po eilutės vertės, jei tam tikra eilutė yra bet kurioje eilutės vertės vietoje.



1 pavyzdys: įveskite eilutę į eilutę radę atitiktį

Ši komanda ieškos eilutėje, man patinka programavimas, ir teksto eilutė: Ar jums patinka programavimas? bus įterpta po eilutės, jei paieškos eilutė egzistuoja.





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

$išmetė 'Man patinka programuoti.' | sed 's / inng / & Ar jums patinka programuoti? /'

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




Ši komanda ieškos. eilutėje man patinka programavimas ir jis egzistuoja eilutėje.

$išmetė 'Man patinka programuoti.' | sed 's/ing ./& Ar jums patinka programuoti?/'

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

Įterpkite eilutę į failą

Yra du būdai, kaip įterpti eilutę po to, kai failas aptinkamas žemiau. Kai komanda sed naudojama be parinkties -i, failo turinys liks nepakitęs, o išvestyje bus rodomas failo turinys su įterpta nauja eilute. Turite naudoti parinktį -i su komanda sed, kad įterptumėte naują eilutę visam laikui į failą, jei faile yra atitinkamas modelis.

A. Naudojant komandą „sed“

A gali būti naudojamas sed paieškos modelyje, norint pridėti vieną ar daugiau failo eilučių po eilutės, kurioje atitinka paieš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 atitinka paieškos modelis.

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

Sukurkite skirtuku atskirtą teksto failą pavadinimu products.txt su šiuo turiniu, kad būtų parodytas aukščiau nurodytos vėliavos naudojimas komandoje sed.

products.txt

ID pavadinimas

01 Plakite grietinėlę

02 Kakavos milteliai

03 Cukrus

04 Kiaušinis

05 Miltai

2 pavyzdys: įterpkite eilutę po tam tikro eilutės numerio naudodami a

Šios komandos parodo, kaip galima pridėti naują eilutę po tam tikro failo products.txt eilutės numerio, atsižvelgiant į komandą, naudojamą sed.

Čia pirmoji komanda parodys esamą failo turinį. Komanda sed pridės tekstą, b01 Kepimo milteliai, po pirmųjų dviejų failo eilučių. Paskutinė komanda naudojama patikrinti, ar pakeistas failo turinys.

$katėproducts.txt

$sed „2 a b01 tKepimo milteliai“products.txt

$katėproducts.txt

Paleidus aukščiau nurodytą komandą, pasirodys ši išvestis.

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. Pirma ir paskutinė komanda rodo esamą failo turinį prieš ir po komandos sed vykdymo. $ Simbolis yra naudojamas komandoje sed, kad būtų paminėta paskutinė failo eilutė.

$katėproducts.txt

$sed „$ a b01 tKepimo milteliai“products.txt

$katėproducts.txt

Paleidus aukščiau nurodytą komandą, pasirodys ši išvestis.

4 pavyzdys: įterpkite eilutę bet kurioje failo vietoje, suderinę modelį naudodami a

Ši komanda sed rodo, kaip galima pridėti naują eilutę bet kurioje failo vietoje pagal atitinkamą modelį. Komandoje sed naudojamas šablonas ieškos bet kurios eilutės, prasidedančios s01, ir po jos pridės naują eilutę. Ketvirtoji failo eilutė prasideda s01, o po to einama nauja eilutė.

$katėproducts.txt

$sed '/^s01.*/a b01 tKepimo milteliai'products.txt

$katėproducts.txt

Paleidus komandą pasirodys ši išvestis.


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

$katėproducts.txt

$sed '/Milteliai $/a b01 tKepimo milteliai'products.txt

$katėproducts.txt

Paleidus aukščiau pateiktas komandas, pasirodys ši išvestis.

5 pavyzdys: po atitinkamo modelio įterpkite kelias eilutes naudodami a

Ši komanda sed rodo, kaip failo turinyje pridėti kelias eilutes pagal atitinkantį modelį.

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

$katėproducts.txt

$sed '/^[a-c]/a b01 tKepimo milteliai nb02 tKepimo soda'products.txt

$katėproducts.txt

Paleidus aukščiau pateiktas komandas, pasirodys ši išvestis.

6 pavyzdys: įterpkite eilutę, suderinę modelį naudodami I

$katėproducts.txt

$sed '/cream/i b01 tKepimo milteliai'products.txt

$katėproducts.txt

Paleidus aukščiau pateiktas komandas, pasirodys ši išvestis.

7 pavyzdys: įterpkite eilutę visam laikui po atitikimo modelio naudodami parinktį -i

Ši komanda sed rodo, kaip visam laikui pakeisti failo turinį. Pasirinkimas i naudojamas su komanda sed, kad įterptumėte naują eilutę į failą pagal modelį.

$katėproducts.txt

$sed -i „/e $/a g01 tGhee“products.txt

$katėproducts.txt

Paleidus aukščiau pateiktas komandas, pasirodys ši išvestis.

Išvada:

Dviejų ar daugiau eilučių įterpimo į failą būdai, naudojant komandą sed su šablonu, buvo parodyti šiame vadove, kad padėtų skaitytojui pritaikyti šią komandą laikinai arba visam laikui įterpiant eilutes pagal modelį.