Linuxi üks kasulik ja võimas käsk on käsk “sed”. Seda käsku kasutatakse Linuxis erinevat tüüpi ülesannete täitmiseks, näiteks vaste põhjal konkreetse teksti või rea sisestamine, värskendamine ja kustutamine. Teksti stringi või faili saab sisestada erineval viisil, kasutades käsku „sed”.
Kuidas lisada rida pärast stringi või rea vaste leidmist, on näidatud selles õpetuses.
Sisestage string stringi
Uue rea saab sisestada mis tahes stringi väärtuse järele käsuga “sed”, kui käsus määratletud muster sobib stringi väärtuse mis tahes osaga.
Järgmine näide näitab, kuidas stringi väärtuse järele saab lisada uue rea, kui stringi väärtuses on kindel string olemas.
Näide 1: pärast vaste leidmist sisestage string stringi
Järgmine käsk otsib stringis sõna "inng", "mulle meeldib programmeerimine" ja tekstirida "Kas teile meeldib programmeerida"?”Lisatakse stringi järele, kui otsitav string on olemas.
Siin kasutatakse märki "&" rea lisamiseks stringile.
$ echo "Mulle meeldib programmeerimine."| sed 's / inng / & Kas teile meeldib programmeerida?/ 'Järgmine väljund näitab, et stringi „inng” ei eksisteeri ja stringi järele ei ole rida lisatud.
Järgmine käsk otsib “ing."Stringis" Mulle meeldib programmeerimine "ja see on stringis olemas.
Järgmine väljund näitab, et uus rida lisatakse stringi järele.
Lisage faili rida
Pärast vaste leidmist failis, mida allpool mainitakse, on rida sisestamiseks kaks võimalust. Kui käsku „sed” kasutatakse ilma suvandita -i, jääb faili sisu muutumatuks ja väljund näitab faili sisu koos sisestatud uue reaga. Uue rea püsivaks lisamiseks faili peate kasutama valikut “-i” käsuga “sed”, kui failis on vastav muster.
A. Kasutades käsku „sed” tähte „a”
Tähte „a” saab kasutada „sedi” otsingumustris, et lisada üks või mitu rida failis pärast rida, kus otsingu muster sobib, või konkreetse rea numbri järele.
B. Kasutades käsku „sed” tähte „i”
„I” saab käsu „sed” otsingumustris kasutada ühe või mitme rea lisamiseks faili enne rida, kus otsingumuster sobib.
Lisage joon (t) faili mustri põhjal:
Looge tabulaatoriga eraldatud tekstifail nimega tooted.txt järgmise sisuga, et näidata ülaltoodud lipu kasutusviise käsus “sed”.
tooted.txt
ID nimi01 Vahukoor
02 Kakaopulber
03 Suhkur
04 Muna
05 Jahu
Näide 2: sisestage rida kindla rea numbri järele tähega „a”
Järgmised käsud näitavad, kuidas saab lisada uut rida toodete kindla rea numbri järel.txt-fail, põhineb käsus “sed” kasutatud mustril.
Siin näitab esimene käsk faili olemasolevat sisu. Käsklus „sed” lisab faili kahe esimese rea järele teksti „b01 küpsetuspulber“. Viimast käsku kasutatakse faili sisu muutmise kontrollimiseks.
$ kassitooted.txt$ sed '2 a b01 \ tKüpsetuspulbri tooted.txt
$ kassitooted.txt
Pärast ülaltoodud käsu käivitamist ilmub järgmine väljund.
Näide 3: sisestage rida viimase rea järele tähega „a”
Järgmine käsk näitab faili viimase rea järel uue rea lisamise viisi. Esimene ja viimane käsk näitavad faili olemasolevat sisu enne ja pärast käsu “sed” käivitamist. „$” Sümbolit kasutatakse käsu „sed” mustris faili viimase rea mainimiseks.
$ kassitooted.txt$ sed '$ a b01 \ tKüpsetuspulber' tooted.txt
$ kassitooted.txt
Pärast ülaltoodud käsu käivitamist ilmub järgmine väljund.
Näide 4: pärast mustri sobitamist tähega „a” sisestage rida faili suvalisse kohta
Järgmine käsk “sed” näitab, kuidas saab sobiva mustri põhjal uut rida lisada faili ükskõik kuhu. Käsus “sed” kasutatud muster otsib suvalise rea, mis algab tähega “s01”, ja lisab selle järele uue stringi. Faili neljas rida algab tähega “s01” ja selle rea järele lisatakse uus rida.
$ kassitooted.txt$ sed '/ ^ s01.* / a b01 \ tKüpsetuspulbri tooted.txt
$ kassitooted.txt
Pärast käsu käivitamist ilmub järgmine väljund.
Järgmine käsk “sed” otsib suvalise rea, mis lõpeb tähega “Powder”, ja sisestab selle järele uue rea. Faili kolmas rida lõpeb tähega “Pulber”. Niisiis, uus rida lisatakse selle rea järele.
$ sed '/ pulber $ / a b01 \ tKüpsetuspulber' tooted.txt
$ kassitooted.txt
Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.
Näide 5: sisestage sobiva mustri järele mitu rida, kasutades a-tähte
Järgmine käsk “sed” näitab viisi, kuidas sobitamise mustri põhjal faili sisusse mitu rida lisada.
Siin lisatakse mustri järgi kolmanda rea järele kaks rida.
$ kassitooted.txt$ sed '/ ^ [a-c] / a b01 \ tKüpsetuspulber \ nb02 \ tSooda küpsetamine.txt
$ kassitooted.txt
Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.
Näide 6: sisestage joon pärast mustri sobitamist tähega „I”
$ kassitooted.txt$ sed '/ cream / i b01 \ tKüpsetuspulber' tooted.txt
$ kassitooted.txt
Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.
Näide 7: sisestage joon püsivalt pärast sobivat mustrit, kasutades valikut “-i”
Järgmine käsk “sed” näitab, kuidas faili sisu jäädavalt muuta. Suvandit “i” kasutatakse käsuga “sed”, et lisada mustrisse põhinev faili uus rida.
$ kassitooted.txt$ sed -i '/ e $ / a g01 \ tGhee' tooted.txt
$ kassitooted.txt
Pärast ülaltoodud käskude käivitamist ilmub järgmine väljund.
Järeldus:
Selles õpetuses on näidatud viisid, kuidas sisestada faili kahte või enamat rida mustriga käsu “sed” abil, mis aitab lugejal rakendada seda käsku ridade ajutiseks või püsivaks lisamiseks mustri põhjal.