sed Naredba za zamjenu niza u datoteci

Sed Command Replace String File



Kad god radimo s bilo kojom vrstom datoteka, vrlo je uobičajena praksa mijenjati te datoteke pronalaženjem i zamjenom riječi. Većina uređivača teksta nudi različite metode temeljene na grafičkom sučelju za izvođenje ovih izmjena. Međutim, ponekad vam je potreban način da pronađete i zamijenite riječi unutar datoteke putem terminala. Stoga ćemo vas u ovom članku provesti kroz način korištenja naredbe sed za zamjenu niza u tekstualnoj datoteci. Također ćemo osvijetliti različite scenarije u kojima se ova naredba može koristiti.

Napomena: Koristit ćemo Linux Mint 20 za demonstraciju korištenja naredbe sed za zamjenu niza u datoteci. Također možete koristiti bilo koji drugi okus Linuxa ako želite.







Upotreba sed naredbe:

Sada ćemo vam pokazati neke vrlo zanimljive primjere za prikaz uporabe naredbe sed u Linuxu. Pogledajmo kako ova naredba radi u različitim scenarijima.



Stvaranje tekstualne datoteke za demonstraciju:

Za demonstraciju uporabe naredbe sed htjeli bismo raditi s tekstualnom datotekom. Međutim, čak možete stvoriti Bash datoteku ili bilo koju drugu datoteku po vašem izboru. Drugo, datoteku ćemo stvoriti u početnom direktoriju tako da ne moramo navesti složene putove prilikom pristupa ovoj datoteci. Za izradu tekstualne datoteke potrebno je izvršiti sljedeće korake:



Kliknite ikonu Upravitelj datoteka koja se nalazi na programskoj traci Linux Mint 20:





Sada stvorite novu tekstualnu datoteku u početnom direktoriju tako da desnom tipkom miša kliknete bilo gdje tamo, a zatim odaberete opciju Novi dokument iz kaskadnog izbornika i opciju Isprazni dokument iz potkaskadnog izbornika. Nakon što je tekstualna datoteka stvorena, dajte joj odgovarajući naziv. U ovom konkretnom primjeru nazvao sam ga sed.txt.



Dvaput kliknite na ovu datoteku da biste je otvorili i upišite bilo koji nasumični tekst u nju kao što je prikazano na donjoj slici. Spremite ovu tekstualnu datoteku pritiskom na Ctrl +S, a zatim je zatvorite.

Sada pokrenite terminal u Linux Mint 20 kao što je prikazano na sljedećoj slici:

Nakon pokretanja terminala u Linux Mint 20, jedan po jedan možete proći kroz sve dolje navedene primjere.

Korištenje naredbe sed za zamjenu svih pojavljivanja date riječi:

Naredbom sed možete koristiti za zamjenu svih pojavljivanja date riječi u tekstualnoj datoteci. Sintaksa postizanja ovog cilja navedena je u nastavku:

$sed‘S/sed/FindWord/Zamijeni Riječ/'File.txt

Ovdje morate FindWord zamijeniti riječju koju želite zamijeniti, a ReplaceWord riječju koju želite zamijeniti. Štoviše, datoteku morate zamijeniti i imenom datoteke u kojoj želite izvršiti te zamjene. U ovom scenariju zamijenio sam FindWord sa sed, a ReplaceWord sa zamijeni. Ime naše datoteke bilo je sed.txt. Također je prikazano na sljedećoj slici:

Uspješno izvršavanje ove naredbe pokazat će vam promjene koje su se dogodile zbog izvođenja ove naredbe na vašem terminalu:

Korištenje naredbe sed za zamjenu n -tog pojavljivanja zadane riječi u svakom retku:

Gornji scenarij bio je najjednostavniji scenarij zamjene, međutim ponekad ne želite zamijeniti sve pojave riječi, nego želite zamijeniti samo prvu, drugu ili ntu pojavu te riječi u svim redovima. Da biste to učinili, možete izvršiti sljedeću naredbu:

$sed‘S/FindWord/Zamijeni Riječ/num ’file.txt

Ovdje morate FindWord zamijeniti riječju koju želite zamijeniti, a ReplaceWord riječju koju želite zamijeniti. Štoviše, datoteku morate zamijeniti i imenom datoteke u kojoj želite izvršiti te zamjene. U ovom scenariju zamijenio sam FindWord replace i ReplaceWord sa sed. Ime naše datoteke bilo je sed.txt. Također, broj se odnosi na pojavu ili položaj riječi koju treba zamijeniti. U prikazanom primjeru želim zamijeniti prvu pojavu zamjene sa sedom u svakom retku kao što je prikazano na donjoj slici:

Uspješno izvršavanje ove naredbe pokazat će vam promjene koje su se dogodile zbog izvođenja ove naredbe na vašem terminalu:

Korištenje naredbe sed za zamjenu zadane riječi u određenom retku:

Povremeno samo želite zamijeniti datu riječ u određenom retku, a ne u cijelom dokumentu. Da biste to učinili, morate izričito navesti taj određeni red u sljedećoj naredbi:

$sed„LineNum s/FindWord/Zamijeni Riječ/'File.txt

Ovdje morate FindWord zamijeniti riječju koju želite zamijeniti, a ReplaceWord riječju koju želite zamijeniti. Štoviše, datoteku morate zamijeniti i imenom datoteke u kojoj želite izvršiti te zamjene. U ovom scenariju zamijenio sam FindWord sed i ReplaceWord zamjenom. Ime naše datoteke bilo je sed.txt. Također, morate zamijeniti LineNum brojem retka određene linije u kojoj želite izvršiti zamjenu. U ovom primjeru željeli smo zamijeniti sed zamjenom u retku 2 naše datoteke kako je prikazano na sljedećoj slici:

Uspješno izvršavanje ove naredbe pokazat će vam promjene koje su se dogodile zbog izvođenja ove naredbe na vašem terminalu. Lako možete provjeriti jesu li se navedene promjene dogodile samo u retku broj 2 naše datoteke, a ne u cijelom tekstu.

Zaključak:

Kad god osjetite potrebu zamjene bilo koje riječi u datoteci, prvo što trebate učiniti je identificirati vaš poseban zahtjev, tj. Želite li zamijeniti tu određenu riječ u cijeloj datoteci, ili želite zamijeniti određenu pojavu tu određenu riječ ili tu riječ želite zamijeniti u određenom retku. Nakon što ste identificirali svoj određeni scenarij, tada možete koristiti tu posebnu metodu iz primjera razmatranih u ovom članku.