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.txtOvdje 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.txtOvdje 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 /'.txtOvdje 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.