sed

Kuidas asendada kõik pärast mustrit käsuga 'sed'

Kuidas asendada kõik pärast mustrit käsuga 'sed'

Asendustoiminguid saab Linuxis teha mitmel viisil. 'sed' käsk on üks asendusülesande täitmise viisidest. Seda käsku saab kasutada stringi või faili teksti asendamiseks erineva mustri abil. Selles õpetuses on näidatud, kuidas saate käsku „sed” kasutades kõik sobitada vastavalt mustrile.

Asendage kõik pärast matši stringis:

Selle õpetuse selles jaotises on näidatud, kuidas stringi osa saab sobiva mustri ja $ PARTITION_COLUMN põhjal asendada. Kuid see muutuja töötab siis, kui muster sobib mis tahes sõnaga stringi alguses või keskel. See ei asenda teksti, kui muster sobib stringi viimase sõnaga.

Näide 1: asendage kõik pärast matši, kasutades valikut $ PARTITION_COLUMN

Järgmine käsk otsib märki "a" ja järelejäänud osa pärast "a" asendatakse tekstiga "populaarne ajaveebisait". $ PARTITION_COLUMN.* kasutatakse tähemärgi "a" järelejäänud osa määratlemiseks.

$ echo "LinuxHint on veebisait" | sed "s / a $ PARTITION_COLUMN.* / populaarne ajaveebisait / "

Pärast käsu käivitamist ilmub järgmine väljund. Siin on "veebisait" asendatud "populaarse ajaveebisaidiga".


Järgmine muster otsib sõna "võrkStringis ja asendage ülejäänud osa tekstigavõrk"Teksti järgi"populaarne ajaveebisait"kui vaste on olemas ja"võrk'Ei ole stringi viimase sõna osa.

$ echo "LinuxHint on veebisait" | sed "s / veeb.* $ PARTITION_COLUMN.* / populaarne ajaveebisait / "

Pärast käsu käivitamist ilmub järgmine väljund. Siin on "veebisait" stringi viimane sõna ja sel põhjusel pole asendamist tehtud.

Näide 2: asendage kõik pärast mängu, kasutades mustrit

Järgmine käsk otsib sõna "bash'globaalselt stringis ja asendage kõik sõnaga, kui stringis on see sõna olemas. "g'Kasutatakse siin globaalse otsingu jaoks.

$ echo "Mulle meeldib bashi programmeerimine" | sed "s / bash.* / pythoni skript / g "

Pärast käsu käivitamist ilmub järgmine väljund. Siin on stringi keskel 'bash' ja asendamine on tehtud.

Asendage kõik pärast matši failis:

Kogu konkreetse rea sisu või mitu mängu või faili ülejäänud rida pärast mängu saab asendada 'sed'käsk. Looge nimega tekstifail kohalolek.txt selles jaotises toodud näidete testimiseks järgmise sisuga.

kohalolek.txt

1108885 on olemas
1999979 on olemas
1769994 puudub
1105656 puudub
1455999 puudub

Näide -3: pärast mängu tuleb kogu failirea sisu asendada

Järgmine käsk 'sed' otsib failist numbrit 1769994 ja kõik numbriga tekst asendatakse tekstiga: '1586844 on olemas', kui number on faili mis tahes real olemas.

$ kassi allendents.txt
$ sed "s / 1769994.* / 1586844 on kohal / "kohal.txt

Järgmine väljund ilmub käske käivitades. Siin on otsingu number faili kolmandal real ja asendamine on tehtud.

Näide -4: pärast mängu tuleb kogu sisu asendada faili mitmel real

Järgmine käsk 'sed' näitab muutuja $ PARTITION_COLUMN kasutamist failist mitme rea asendamiseks. Käsk otsib faili iga rea ​​alguses sõna „110” ja asendab kõik tekstiga „110” tekstiga „Vale kirje”, kust leiate sobiva teksti.

$ kassi osalemine.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Kehtetu sissekanne / "osavõtt.txt

Pärast käskude käivitamist ilmub järgmine väljund. '110' eksisteerib faili kahes reas ja need on asendatud asendava tekstiga.

Näide 5: Asendage kogu failirea sisu pärast mängu mängu tähega „c”

Järgnev 'sed'käsk näitab' kasutamistc'asendada kõik pärast matši. Siin, "c'tähistab muudatust. Käsk otsib sõna 'kohal"failis ja asendage kõik rida tekstiga"See rida asendatakse', kui see sõna on faili mis tahes real olemas.

$ kassi osalemine.txt
$ sed '/ present / c See rida asendatakse kohalolekuga.txt

Pärast käskude käivitamist ilmub järgmine väljund. Sõna „kohal” on faili kahes esimeses reas ja need kaks rida on asendatud asendava tekstiga.

Näide 6: Asendage kogu failirea sisu algus- ja lõpumustri põhjal

Mõnikord nõutakse teksti asendamist algus- ja lõpumustri põhjal. Järgmine käsk 'sed' näitab viisi, kuidas defineerida algus- ja lõpumustrid faili ridade asendamiseks. Käsk otsib failis neid ridu, mis algavad numbriga 110 ja lõpevad sõnaga „puudub”, ning asendab kõik sõnadega „asendatud”, kui mustrid sobivad.

$ kassi osalemine.txt
$ sed -e s / ^ 110.* puudub $ / asendatud / g 'osavõtt.txt

Pärast käskude käivitamist ilmub järgmine väljund. Siin algavad esimene ja neljas rida numbriga 110, kuid sõna "puudub" eksisteerib ainult neljandal real. Niisiis, faili neljas rida on asendatud asendava tekstiga.

Järeldus:

'sed' käsk on Linuxi väga võimas tööriist erinevat tüüpi tekstitöötlusega seotud ülesannete täitmiseks. Sobitusmustril põhinevat asendusülesannet käsitletakse selles õpetuses, kasutades käsus 'sed' erinevat tüüpi mustreid. $ PARTITION_COLUMN, 'c' ja '.* 'kasutatakse selles õpetuses failirea kõikide asendamiseks, kui vastav muster on olemas. Siin on näidatud mõnede määratlevate mustrite märkide, näiteks '^' ja '$' kasutused. Regulaaravaldises mustri määramiseks otsingu eesmärgil on olemas palju muid märke. Loodan, et see õpetus aitab lugejal teada põhitõdesid, et pärast mängu kõik failist välja vahetada.

Kuidas kasutada GameConquerori petumootorit Linuxis
Artikkel sisaldab juhendit GameConquerori petumootori kasutamise kohta Linuxis. Paljud kasutajad, kes mängivad Windowsis mänge, kasutavad rakendust „C...
Parimad Linuxi mängukonsooli emulaatorid
Selles artiklis loetletakse Linuxi jaoks saadaval olev populaarne mängukonsooli emuleerimise tarkvara. Emuleerimine on tarkvara ühilduvuse kiht, mis j...
Parimad mängude jaoks mõeldud Linuxi distrod 2021. aastal
Linuxi operatsioonisüsteem on oma algsest, lihtsast, serveripõhisest välimusest kaugele jõudnud. See operatsioonisüsteem on viimastel aastatel tohutul...