sed

Kaip pakeisti viską po raštu naudojant komandą „sed“

Kaip pakeisti viską po raštu naudojant komandą „sed“

„Linux“ pakeitimo užduotis galima atlikti įvairiais būdais. „sed“ komanda yra vienas iš būdų atlikti pakeitimo užduotį. Ši komanda gali būti naudojama norint pakeisti eilutės ar failo tekstą naudojant kitą modelį. Kaip galite pakeisti viską po atitikimo modelio naudodami komandą „sed“, parodyta šioje pamokoje.

Pakeiskite viską po rungtynių eilutėje:

Kaip šios eilutės dalis gali būti pakeista remiantis suderinamu šablonu ir $ PARTITION_COLUMN, buvo parodyta šiame šios mokymo programos skyriuje. Bet šis kintamasis veikia, jei modelis atitinka bet kurį žodį, esantį eilutės pradžioje arba viduryje. Jis nepakeis teksto, jei raštas sutampa su paskutiniu eilutės žodžiu.

1 pavyzdys: pakeiskite visus po rungtynių naudodami $ PARTITION_COLUMN

Ši komanda ieškos simbolio „a“, o likusi dalis po „a“ bus pakeista tekstu „populiari tinklaraščio svetainė“. $ PARTITION_COLUMN.* naudojamas apibrėžti likusią dalį po simbolio „a“.

$ echo "LinuxHint yra svetainė" | sed "s / a $ PARTITION_COLUMN.* / populiari tinklaraščio svetainė / "

Paleidus komandą pasirodys toks išvestis. Čia „svetainė“ buvo pakeista į „populiari tinklaraščio svetainė“.


Šis modelis ieškos žodžio „internetas"Eilutėje ir pakeiskite likusią dalį"internetas„Pagal tekstą“populiari dienoraščio svetainė„jei atitiktis egzistuoja ir“internetas'Nėra eilutės paskutinio žodžio dalis.

$ echo "LinuxHint yra svetainė" | sedas / internetas.* $ PARTITION_COLUMN.* / populiari tinklaraščio svetainė / "

Paleidus komandą pasirodys toks išvestis. Čia „svetainė“ yra paskutinis eilutės žodis ir dėl šios priežasties nepakeistas.

2 pavyzdys: pakeiskite visus po rungtynių naudodami šabloną

Ši komanda ieškos žodžio „bash'visame pasaulyje eilutėje ir pakeiskite viską žodžiu, jei eilutėje yra žodžio. "g„Čia naudojama visuotinei paieškai.

$ echo "Man patinka bash programavimas" | sed "s / bash.* / python scenarijus / g "

Paleidus komandą pasirodys toks išvestis. Čia „bash“ yra eilutės viduryje ir pakeitimas buvo atliktas.

Pakeiskite viską po rungtynių faile:

Visą tam tikros eilutės turinį arba kelias eilutes arba likusias failo eilutes po rungtynių galima pakeisti naudojant 'sed'komanda. Sukurkite tekstinį failą pavadinimu lankomumas.txt turinį, kad išbandytumėte šiame skyriuje pateiktus pavyzdžius.

lankomumas.txt

1108885 yra
1999979 yra
1769994 nėra
1105656 nėra
1455999 nėra

-3 pavyzdys: Pakeiskite visą turinį iš failo eilutės po rungtynių

Ši „sed“ komanda ieškos faile skaičiaus 1769994, o viskas su numeriu bus pakeista tekstu „1586844 yra“, jei numeris yra bet kurioje failo eilutėje.

$ kačių alendencija.txt
$ sed “s / 1769994.* / 1586844 dalyvauja / "dalyvauja.txt

Šis išėjimas pasirodys vykdant komandas. Čia ieškos numeris yra trečioje failo eilutėje ir pakeitimas buvo atliktas.

-4 pavyzdys: Pakeiskite visą turinį iš kelių failo eilučių po rungtynių

Ši komanda „sed“ parodo, kaip kintamasis $ PARTITION_COLUMN naudojamas norint pakeisti kelias eilutes iš failo. Komanda ieškos „110“ kiekvienos failo eilutės pradžioje ir viską pakeis „110“ tekstu „Neteisingas įrašas“, kur bus rastas atitinkantis tekstas.

$ kačių lankymas.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Negaliojantis įrašas / dalyvavimas.txt

Paleidus komandas pasirodys toks išėjimas. „110“ yra dviejose bylos eilutėse ir jas pakeitė pakeičiantis tekstas.

5 pavyzdys: pakeiskite visą failo eilutės turinį naudodami „c“ po rungtynių

Sekantis 'sed'komanda parodo'c'pakeisti viską po rungtynių. Čia “c'rodo pokyčius. Komanda ieškos žodžio „pateikti„faile ir viską pakeiskite eilute tekstu“,Ši eilutė pakeista', jei žodis yra bet kurioje failo eilutėje.

$ kačių lankymas.txt
$ sed '/ present / c Ši eilutė pakeičiama' lankomumas.txt

Paleidus komandas pasirodys toks išėjimas. Žodis „esamas“ yra pirmose dviejose bylos eilutėse, ir šios dvi eilutės buvo pakeistos pakeičiančiu tekstu.

6 pavyzdys: Pakeiskite visą failo eilutės turinį pagal pradžios ir pabaigos modelį

Kartais reikalaujama pakeisti tekstą pagal pradžios ir pabaigos modelį. Ši „sed“ komanda parodo būdą, kaip apibrėžti pradžios ir pabaigos šablonus, kad būtų pakeistos failo eilutės. Komanda ieškos tų failo eilučių, kurios prasideda skaičiumi 110 ir baigiasi žodžiu „nėra“, ir pakeis viską žodžiu „pakeista“, kur sutampa modeliai.

$ kačių lankymas.txt
$ sed -e 's / ^ 110.* nėra $ / pakeisto / g 'dalyvavimo.txt

Paleidus komandas pasirodys toks išėjimas. Pirmoji ir ketvirtoji eilutės prasideda skaičiumi 110, tačiau žodis „nėra“ egzistuoja tik ketvirtoje eilutėje. Taigi ketvirtoji failo eilutė buvo pakeista pakeičiančiu tekstu.

Išvada:

„sed“ komanda yra labai galingas „Linux“ įrankis, skirtas atlikti įvairias su teksto apdorojimu susijusias užduotis. Pakeitimo užduotis, pagrįsta atitikimo modeliu, aptariama šioje pamokoje naudojant komandoje „sed“ įvairius modelius. $ PARTITION_COLUMN, „c“ ir „.* 'šiame vadovėlyje naudojamas norint pakeisti viską failo eilutėje, kurioje yra atitikimo šablonas. Čia parodyti kai kurių apibrėžiančių modelių simbolių, tokių kaip „^“ ir „$“, naudojimas. Yra daugybė kitų simbolių, siekiant apibrėžti įprastos išraiškos modelį paieškos tikslais. Tikiuosi, kad ši pamoka padės skaitytojui sužinoti pagrindus, kaip pakeisti viską iš failo po rungtynių.

Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...