Üks Linuxi kasulikke ja võimsaid käske on käsk sed. Seda käsku kasutatakse Linuxis erinevat tüüpi ülesannete täitmiseks, näiteks vastava teksti või rea lisamiseks, värskendamiseks ja kustutamiseks. Teksti stringisse või faili saab sisestada erinevalt, kasutades käsku sed.
Selles juhendis on näidatud, kuidas sisestada rida pärast stringi või rea vaste leidmist.
Sisestage string stringile
Uue rea saab sisestada mis tahes stringiväärtuse järele käsu sed abil, kui käsus määratletud muster sobib stringiväärtuse mis tahes osaga.
Järgmine näide näitab, kuidas saab stringi väärtuse järel lisada uut rida, kui stringi väärtuses on kindel string olemas.
Näide-1: sisestage rida stringisse pärast vaste leidmist
Järgmine käsk otsib stringi, mulle meeldib programmeerimine ja tekstirida: Kas teile meeldib programmeerimine? Kui otsingustring on olemas, sisestatakse see stringi järele.
Siin kasutatakse märki & rea rea lisamiseks stringi järele.
$viskas välja 'Mulle meeldib programmeerimine.' | sed 's / inng / & Kas teile meeldib programmeerimine? /'Järgmine väljund näitab, et inng pole stringis olemas ja stringile ei lisata rida.
Järgmine käsk otsib. stringis mulle meeldib programmeerimine ja see on stringis olemas.
Järgmine väljund näitab, et stringile lisatakse uus rida.
Sisestage rida faili
Rida lisamiseks pärast seda, kui vaste on leitud failist, on kaks võimalust. Kui käsku sed kasutatakse ilma -i valikuta, jääb faili sisu muutumatuks ja väljund näitab faili sisu koos lisatud uue reaga. Kui failis on vastav muster, peate uue rea püsivaks sisestamiseks faili kasutama käsku -sed koos suvandiga -i.
A. Kasutades käsku sed
A -d saab kasutada sed -i otsingumustris, et lisada failile üks või mitu rida pärast seda, kui otsimismuster sobib, või konkreetse rea numbri järele.
B. Kasutades i käsus sed
I saab kasutada käsu sed otsingumustris, et sisestada faili üks või mitu rida enne seda rida, kuhu otsimismuster sobib.
Sisestage rida (read) faili vastavalt mustrile:
Looge vahekaardiga eraldatud tekstifail nimega products.txt järgmise sisuga, et näidata ülaltoodud lipu kasutamist käsus sed.
products.txt
ID nimi01 Vahusta koor
02 Kakaopulber
03 Suhkur
04 Muna
05 Jahu
Näide-2: sisestage rida konkreetse reanumbri järele, kasutades a
Järgmised käsud näitavad, kuidas saab lisada uue rea pärast faili product.txt teatud reanumbrit, lähtudes käsus sed kasutatud mustrist.
Siin näitab esimene käsk faili olemasolevat sisu. Käsk sed lisab faili kahe esimese rea järel teksti b01 Küpsetuspulber. Viimast käsku kasutatakse faili sisu muutmise kontrollimiseks.
$kassproducts.txt$sed '2 a b01 tKüpsetuspulber'products.txt
$kassproducts.txt
Pärast ülaltoodud käsu käivitamist ilmub järgmine väljund.
Näide-3: sisestage rida viimase rea järele a abil
Järgmine käsk näitab viisi, kuidas faili viimase rea järel uus rida lisada. Esimene ja viimane käsk näitab faili olemasolevat sisu enne ja pärast käsu sed täitmist. Käsu sed mustris kasutatakse faili viimast rida mainides sümbolit $.
$kassproducts.txt$sed '$ a b01 tKüpsetuspulber'products.txt
$kassproducts.txt
Pärast ülaltoodud käsu käivitamist ilmub järgmine väljund.
Näide-4: sisestage rida faili ükskõik kuhu pärast mustri sobitamist a abil
Järgmine sed käsk näitab, kuidas sobitumismustri alusel saab faili uuele reale lisada kõikjale. Käsklas sed kasutatav muster otsib suvalist rida, mis algab s01 -ga, ja lisab selle järele uue stringi. Faili neljas rida algab s01 -ga ja uus rida sisestatakse pärast seda rida.
$kassproducts.txt$sed '/^s01.*/a b01 tKüpsetuspulber'products.txt
$kassproducts.txt
Pärast käsu käivitamist kuvatakse järgmine väljund.
Järgmine sed -käsk otsib kõiki ridu, mis lõpevad pulbriga, ja lisab selle järele uue rea. Faili kolmas rida lõpeb pulbriga. Niisiis, uus rida sisestatakse pärast seda rida.
$sed '/Pulber $/a b01 tKüpsetuspulber'products.txt
$kassproducts.txt
Pärast ülaltoodud käskude käivitamist kuvatakse järgmine väljund.
Näide-5: sisestage sobiva mustri järele mitu rida, kasutades a
Järgmine sed -käsk näitab viisi, kuidas sobiva mustri alusel faili sisusse lisada mitu rida.
Siin lisatakse kolmanda rea järele mustri järgi kaks rida.
$kassproducts.txt$sed '/^[a-c]/a b01 tKüpsetuspulber nb02 tSöögisooda'products.txt
$kassproducts.txt
Pärast ülaltoodud käskude käivitamist kuvatakse järgmine väljund.
Näide-6: sisestage rida pärast mustri sobitamist, kasutades nuppu I
$kassproducts.txt$sed '/cream/i b01 tKüpsetuspulber'products.txt
$kassproducts.txt
Pärast ülaltoodud käskude käivitamist kuvatakse järgmine väljund.
Näide -7: sisestage rida püsivalt pärast sobivat mustrit, kasutades valikut -i
Järgmine sed käsk näitab, kuidas faili sisu jäädavalt muuta. Valikut i kasutatakse koos käsuga sed, et lisada mustrisse uus rida.
$kassproducts.txt$sed -mina '/e $/a g01 tGhee'products.txt
$kassproducts.txt
Pärast ülaltoodud käskude käivitamist kuvatakse järgmine väljund.
Järeldus:
Selles juhendis on näidatud kahe või enama rea sisestamise viise, kasutades käsku sed koos mustriga, et aidata lugejal rakendada seda käsku ridade sisestamiseks ajutiselt või püsivalt mustri alusel.