sed

Kako zamijeniti sve nakon uzorka pomoću naredbe 'sed'

Kako zamijeniti sve nakon uzorka pomoću naredbe 'sed'

Zadaci zamjene mogu se u Linuxu obavljati na različite načine. naredba 'sed' jedan je od načina za izvršavanje zamjenskog zadatka. Ova se naredba može koristiti za zamjenu teksta u nizu ili datoteci pomoću drugog uzorka. Kako možete zamijeniti sve nakon odgovarajućeg uzorka pomoću naredbe 'sed' prikazano je u ovom vodiču.

Zamijeni sve nakon meča u niz:

Kako se dio niza može zamijeniti na temelju odgovarajućeg uzorka i $ PARTITION_COLUMN prikazano je u ovom odjeljku ovog vodiča. Ali ova varijabla djeluje ako se obrazac podudara s bilo kojom riječi na početku ili sredini niza. Neće zamijeniti tekst ako se uzorak podudara s posljednjom riječju niza.

Primjer-1: Zamijenite sve nakon meča pomoću $ PARTITION_COLUMN

Sljedeća naredba pretražit će znak 'a', a preostali dio iza 'a' zamijenit će se tekstom, "popularna web lokacija bloga". $ PARTITION_COLUMN.* koristi se za definiranje preostalog dijela nakon znaka, 'a'.

$ echo "LinuxHint je web mjesto" | sed "s / a $ PARTITION_COLUMN.* / popularna web lokacija bloga / "

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Ovdje je "web mjesto" zamijenjeno s "popularno web mjesto na blogu".


Sljedeći obrazac pretraživat će riječ 'mreža'U nizu, a preostali dio zamijenite s'mreža'Po tekstu,'popularna web lokacija na blogu'ako podudaranje postoji i'mreža'Nije dio posljednje riječi niza.

$ echo "LinuxHint je web mjesto" | sed "s / web.* $ PARTITION_COLUMN.* / popularna web lokacija bloga / "

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Ovdje je 'web stranica' zadnja riječ niza i zbog toga nije izvršena zamjena.

Primjer-2: Zamijenite sve nakon podudaranja pomoću uzorka

Sljedeća naredba pretražit će riječ 'bash'globalno u nizu i zamijenite sve riječju ako riječ postoji u nizu. 'g'Ovdje se koristi za globalno pretraživanje.

$ echo "Volim bash programiranje" | sed "s / bash.* / python skripta / g "

Sljedeći će se izlaz pojaviti nakon pokretanja naredbe. Ovdje 'bash' postoji u sredini niza i zamjena je izvršena.

Zamijenite sve nakon meča u datoteku:

Sav sadržaj određenog retka ili više redaka ili preostali redovi datoteke nakon podudaranja mogu se zamijeniti pomoću 'sed'naredba. Stvorite tekstualnu datoteku s imenom prisustvovanje.txt sa sljedećim sadržajem za testiranje primjera prikazanih u ovom odjeljku.

prisustvovanje.txt

1108885 je prisutan
1999979 je prisutan
1769994 je odsutan
1105656 je odsutan
1455999 je odsutan

Primjer -3: Zamijenite sav sadržaj iz retka datoteke nakon podudaranja

Sljedeća naredba 'sed' pretražit će broj 1769994 u datoteci, a sve s brojem zamijenit će se tekstom '1586844 prisutan' ako broj postoji u bilo kojem retku datoteke.

$ mačka privrženost.txt
$ sed "s / 1769994.* / 1586844 je prisutan / "prisustvo.txt

Pojavit će se sljedeći izlaz s izvršavanjem naredbi. Ovdje broj za pretraživanje postoji u trećem retku datoteke i zamjena je obavljena.

Primjer -4: Zamijenite sav sadržaj iz više redaka datoteke nakon podudaranja

Sljedeća naredba 'sed' prikazuje upotrebu varijable $ PARTITION_COLUMN za zamjenu više redaka iz datoteke. Naredba će pretražiti '110' na početku svakog retka datoteke i sve zamijeniti s '110' tekstom 'Invalid Entry' gdje će se naći odgovarajući tekst.

$ prisustvo mačaka.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Nevažeći unos / "prisustvo.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. '110' postoji u dva retka datoteke, a oni su zamijenjeni zamjenskim tekstom.

Primjer 5: Zamijenite sav sadržaj iz retka datoteke pomoću 'c' nakon podudaranja

Sljedeće 'sed'naredba pokazuje upotrebu'c'zamijeniti sve nakon meča. Evo, 'c'označava promjenu. Naredba će pretražiti riječ 'predstaviti'u datoteci i zamijeni sve crte tekstom,'Ovaj je redak zamijenjen'ako riječ postoji u bilo kojem retku datoteke.

$ prisustvo mačaka.txt
$ sed '/ prisutan / c Ovaj redak zamjenjuje se' prisutnost.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Riječ 'prisutan' postoji u prva dva retka datoteke, a ta su dva retka zamijenjena tekstom koji zamjenjuje.

Primjer 6: Zamijenite sav sadržaj iz retka datoteke na temelju uzorka početka i završetka

Ponekad je potrebno zamijeniti tekst na temelju početnog i završnog uzorka. Sljedeća naredba 'sed' pokazuje način definiranja početnog i završnog uzorka za zamjenu redaka iz datoteke. Naredba će pretražiti one retke u datoteci koji započinju brojem 110, a završavaju riječju "odsutna" i zamjenjuje sve riječju "zamijenjeno" tamo gdje se uzorci podudaraju.

$ prisustvo mačaka.txt
$ sed -e 's / ^ 110.* odsutnost $ / zamijenjeno / g 'prisustvo.txt

Sljedeći će se izlaz pojaviti nakon pokretanja naredbi. Ovdje prvi i četvrti redak počinju brojem 110, ali riječ 'odsutan' postoji samo u četvrtom retku. Dakle, četvrti redak datoteke zamijenjen je zamjenskim tekstom.

Zaključak:

Naredba 'sed' vrlo je moćan alat Linuxa za obavljanje različitih vrsta zadataka povezanih s obradom teksta. Zadatak zamjene temeljen na uzorku podudaranja raspravlja se u ovom vodiču korištenjem različitih vrsta uzoraka u naredbi 'sed'. $ PARTITION_COLUMN, 'c' i '.* 'koristi se u ovom vodiču za zamjenu svega retka datoteke gdje postoji odgovarajući obrazac. Ovdje su prikazane uporabe nekih znakova definiranja uzoraka, poput '^' i '$'. Postoje mnogi drugi znakovi koji definiraju obrazac u regularnom izrazu u svrhe pretraživanja. Nadam se da će ovaj vodič pomoći čitatelju da upozna osnove zamjene svega iz datoteke nakon meča.

Srednja tipka miša ne radi u sustavu Windows 10
The srednja tipka miša pomaže vam u pomicanju kroz dugačke web stranice i zaslone s puno podataka. Ako se to zaustavi, na kraju ćete koristiti tipkovn...
Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...
Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...