Nadomestna opravila lahko v Linuxu opravite na različne načine. ukaz 'sed' je eden od načinov za nadomestno nalogo. Ta ukaz lahko uporabite za zamenjavo besedila v nizu ali datoteki z drugačnim vzorcem. V tej vadnici je prikazano, kako lahko po ujemajočem se vzorcu z ukazom 'sed' zamenjate vse.
Vse po tekmi zamenjajte v nizu:
Kako je mogoče del niza zamenjati na podlagi ujemajočega se vzorca in $ PARTITION_COLUMN, je prikazano v tem razdelku te vadnice. Toda ta spremenljivka deluje, če se vzorec ujema s katero koli besedo na začetku ali sredi niza. Besedila ne bo nadomestilo, če se vzorec ujema z zadnjo besedo niza.
Primer-1: Zamenjajte vse po tekmi s pomočjo $ PARTITION_COLUMN
Naslednji ukaz bo poiskal znak 'a', preostali del za 'a' pa bo nadomestil besedilo, "priljubljeno spletno mesto". $ PARTITION_COLUMN.* se uporablja za določitev preostalega dela za znakom, 'a'.
$ echo "LinuxHint je spletno mesto" | sed "s / a $ PARTITION_COLUMN.* / priljubljeno spletno mesto / "Po zagonu ukaza se prikaže naslednji izhod. Tu je "spletno mesto" zamenjano s "priljubljeno spletno mesto".
Naslednji vzorec bo poiskal besedo 'splet'V nizu in nadomestite preostali del z'splet"Z besedilom,"priljubljeno spletno mesto'če ujemanje obstaja in'splet'Ni del zadnje besede v nizu.
Po zagonu ukaza se prikaže naslednji izhod. Tu je "spletno mesto" zadnja beseda niza, zato zamenjava ni bila izvedena.
Primer-2: Zamenjajte vse po tekmi z vzorcem
Naslednji ukaz bo poiskal besedo 'bash'globalno v nizu in vse nadomestite z besedo, če beseda obstaja v nizu. "g'Se tukaj uporablja za globalno iskanje.
$ echo "Všeč mi je bash programiranje" | sed "s / bash.* / python script / g "Po zagonu ukaza se prikaže naslednji izhod. Tukaj v sredini niza obstaja "bash" in zamenjava je bila opravljena.
Po tekmi zamenjajte vse v datoteki:
Vso vsebino določene vrstice ali več vrstic ali preostalih vrstic datoteke po ujemanju je mogoče nadomestiti z uporabo 'sedukaz. Ustvarite besedilno datoteko z imenom prisotnost.txt z naslednjo vsebino za preizkus primerov, prikazanih v tem oddelku.
prisotnost.txt
1108885 je prisoten1999979 je prisoten
1769994 ni
1105656 je odsoten
1455999 ni
Primer -3: Zamenjajte vso vsebino iz vrstice datoteke po ujemanju
Naslednji ukaz "sed" bo poiskal številko 1769994 v datoteki in vse s številko bo nadomestilo besedilo "1586844 je prisoten", če številka obstaja v kateri koli vrstici datoteke.
$ mačje zvestobe.txt$ sed "s / 1769994.* / 1586844 je prisoten / "prisotnost.txt
Naslednji izhod se bo prikazal z ukazi. Tu je iskalna številka v tretji vrstici datoteke in zamenjava je bila opravljena.
Primer -4: Po ujemanju nadomestite vso vsebino iz več vrstic datoteke
Naslednji ukaz 'sed' prikazuje uporabo spremenljivke $ PARTITION_COLUMN za zamenjavo več vrstic iz datoteke. Ukaz bo na začetku vsake vrstice datoteke poiskal '110' in vse nadomestil z '110' z besedilom 'Neveljaven vnos', kjer bo našli ujemajoče se besedilo.
$ obisk mačke.txt$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Neveljaven vnos / "prisotnost.txt
Po zagonu ukazov se prikaže naslednji izhod. '110' obstaja v dveh vrsticah datoteke in jih je nadomestilo nadomestno besedilo.
Primer 5: Zamenjajte vso vsebino iz vrstice datoteke, tako da po ujemanju uporabite 'c'
Naslednji 'sed'ukaz prikazuje uporabo'c'po tekmi zamenjati vse. Tukaj, 'c'označuje spremembo. Ukaz bo poiskal besedo 'prisoten'v datoteki in zamenjaj vse vrstice z besedilom,'Ta vrstica se nadomesti'če beseda obstaja v kateri koli vrstici datoteke.
$ obisk mačke.txt$ sed '/ present / c Ta vrstica se nadomesti z' udeležba.txt
Po zagonu ukazov se prikaže naslednji izhod. Beseda 'prisoten' obstaja v prvih dveh vrsticah datoteke, ti dve vrstici pa sta nadomeščeni z nadomestnim besedilom.
Primer 6: Zamenjajte vso vsebino iz vrstice datoteke glede na začetni in končni vzorec
Včasih je treba besedilo nadomestiti glede na začetni in končni vzorec. Naslednji ukaz 'sed' prikazuje način določanja začetnega in končnega vzorca za zamenjavo vrstic iz datoteke. Ukaz bo poiskal vrstice v datoteki, ki se začnejo s številko 110 in končajo z besedo "odsoten", vse pa nadomesti z besedo "zamenjano", kjer se vzorci ujemajo.
$ obisk mačke.txt$ sed -e '/ ^ 110.* odsotnost $ / zamenjana / g 'prisotnost.txt
Po zagonu ukazov se prikaže naslednji izhod. Tu se prva in četrta vrstica začneta s številko 110, beseda „odsoten“ pa obstaja samo v četrti vrstici. Tako je četrta vrstica datoteke nadomeščena z nadomestnim besedilom.
Zaključek:
Ukaz 'sed' je zelo zmogljivo orodje Linuxa za izvajanje različnih vrst nalog, povezanih z obdelavo besedila. Nadomestna naloga, ki temelji na ujemajočem se vzorcu, je obravnavana v tej vadnici z uporabo različnih vrst vzorcev v ukazu 'sed'. $ PARTITION_COLUMN, 'c' in '.* 'se v tej vadnici uporablja za nadomestitev vse vrstice datoteke, kjer obstaja ujemajoč se vzorec. Tu so prikazane uporabe nekaterih znakov vzorcev za definiranje, na primer '^' in '$'. Obstaja veliko drugih znakov, ki za namene iskanja določajo vzorec v regularnem izrazu. Upam, da bo ta vadnica bralcu pomagala spoznati osnove zamenjave vsega iz datoteke po tekmi.