sed

sed naredba za zamjenu niza u datoteci

sed naredba za zamjenu niza u datoteci
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 GUI-ju za izvođenje tih izmjena. Međutim, ponekad vam treba način da putem terminala pronađete i zamijenite riječi u datoteci. Stoga ćemo vas u ovom članku provesti kroz metodu 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. Ako želite, možete koristiti bilo koji drugi okus Linuxa.

Upotreba naredbe sed:

Sada ćemo vam pokazati nekoliko vrlo zanimljivih primjera za prikaz upotrebe naredbe sed u Linuxu. Pogledajmo kako ova naredba djeluje u različitim scenarijima.

Izrada tekstualne datoteke za demonstraciju:

Da bismo demonstrirali upotrebu naredbe sed, željeli bismo raditi s tekstualnom datotekom. Međutim, možete čak stvoriti Bash datoteku ili bilo koju drugu datoteku po vašem izboru. Kao drugo, stvorit ćemo datoteku u direktoriju Home tako da ne moramo navoditi složene staze tijekom pristupa ovoj datoteci. Za stvaranje tekstualne datoteke treba izvršiti sljedeće korake:

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

Sada stvorite novu tekstualnu datoteku u direktoriju Početna tako da desnom tipkom miša kliknete bilo gdje tamo, a zatim odaberete opciju New Document iz kaskadnog izbornika i opciju Empty document iz podkaskadnog izbornika. Nakon izrade tekstualne datoteke, dajte joj prikladno ime. Za ovaj konkretni primjer nazvao sam ga sed.txt.

Dvaput kliknite ovu datoteku da biste je otvorili i u nju unesite bilo koji slučajni tekst 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, možete jedan po jedan proći kroz sve primjere navedene u nastavku.

Korištenje naredbe sed za zamjenu svih pojava dane riječi:

Naredbu sed možete koristiti za zamjenu svih pojavljivanja dane riječi u tekstualnoj datoteci. Sintaksa postizanja ovog cilja spomenuta je u nastavku:

$ sed 's / sed / FindWord / ReplaceWord /' datoteka.txt

Ovdje morate zamijeniti FindWord riječju koju želite zamijeniti, a Zamijeniti riječ riječju koju treba zamijeniti. Štoviše, također trebate zamijeniti "datoteku" imenom datoteke u kojoj želite izvršiti ove zamjene. U ovom sam scenariju zamijenio FindWord sa sed i ReplaceWord zamjenom. 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 dane riječi u svakom retku:

Gornji scenarij bio je najjednostavniji scenarij zamjene, no s vremena na vrijeme ne želite zamijeniti sve pojave riječi, već želite zamijeniti samo prvo, drugo ili n-to pojavljivanje te riječi u svim redovima. Da biste to učinili, možete izvršiti sljedeću naredbu:

$ sed 's / FindWord / ReplaceWord / num' datoteka.txt

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

Uspješno izvršavanje ove naredbe prikazat ć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:

Ponekad danu riječ želite zamijeniti samo u određenom retku, a ne u cijelom dokumentu. Da biste to učinili, morate izričito navesti taj broj retka u sljedećoj naredbi:

$ sed datoteka 'LineNum s / FindWord / ReplaceWord /'.txt

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

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

Zaključak:

Kad god osjetite potrebu za zamjenom bilo koje riječi u datoteci, prvo što trebate učiniti je identificirati svoj osobiti zahtjev.e. želite li zamijeniti tu određenu riječ u cijeloj datoteci ili želite zamijeniti određenu pojavu te određene riječi ili želite zamijeniti tu riječ u određenom retku. Nakon što identificirate svoj određeni scenarij, tada možete upotrijebiti tu određenu metodu iz primjera razmotrenih u ovom članku.

OpenTTD vs Simutrans
Stvaranje vlastite simulacije prijevoza može biti zabavno, opuštajuće i izuzetno primamljivo. Zbog toga morate isprobati što više igara kako biste pro...
Vodič za OpenTTD
OpenTTD je jedna od najpopularnijih igara za poslovnu simulaciju. U ovoj igri morate stvoriti prekrasan prijevoznički posao. Međutim, počet ćete u poč...
SuperTuxKart za Linux
SuperTuxKart sjajan je naslov osmišljen kako bi vam besplatno pružio iskustvo Mario Kart na vašem Linux sustavu. Prilično je izazovno i zabavno igrati...