Ručna izmena tekstualnih fajlova na Linux operativnom sistemu može biti zamarajuća. Iz tog razloga, korisno je znati kako brzo zameniti određene nizove karaktera unutar fajlova koristeći komandnu liniju. Ukoliko ste novi u svetu Linuxa i niste sigurni kako se to izvodi, na pravom ste mestu! Sledite uputstva kako biste saznali kako da zamenite tekstualni niz u fajlu na Linuxu.
Zamena teksta u fajlu pomoću sed komande
Alat sed
predstavlja najefikasniji način za zamenu tekstualnih nizova u fajlovima na Linux sistemima. Razlog za to je jednostavnost korišćenja i izuzetna efikasnost u obavljanju zadatka. Sed
je obično unapred instaliran na velikoj većini Linux distribucija, čime se eliminiše potreba za dodatnom instalacijom pre upotrebe.
Za zamenu tekstualnog niza u fajlu koristi se komanda sed -i
. Evo kako je možete upotrebiti: prvo, otvorite terminal na vašoj Linux radnoj površini. Terminal možete otvoriti pritiskom na kombinaciju tastera Ctrl + Alt + T.
Kada je terminal otvoren i spreman za upotrebu, upišite komandu sed -i
. Ovo je početak komande za zamenu teksta.
sed -i
Nakon što ste upisali sed -i
, dodajte znak navodnika. Ovaj znak je neophodan jer sav tekst koji se menja pomoću komande sed -i
mora da počne nakon ovog znaka.
sed -i '
Nakon prvog znaka navodnika, upišite s/
. s/
se postavlja ispred postojećeg teksta koji želite da zamenite pomoću sed komande.
sed -i 's/
Sada kada ste uneli s/
, vreme je da kažete sed
komandi koji tekst da zameni u fajlu. U ovom primeru, zamenićemo reč „jabuka“.
sed -i 's/apple
Nakon što je unet tekst koji želimo da zamenimo, sledeći korak je da unesemo novi tekst koji će ga zameniti. U ovom primeru zamenićemo „jabuke“ sa „pomorandže“.
sed -i 's/apples/oranges
Kada je tekst kojim vršimo zamenu (u ovom slučaju „pomorandže“) unet, potrebno je da zatvorimo komandu sa g/
. g/
govori sed
komandi da zameni sve instance datog teksta („jabuke“) sa novim tekstom („pomorandže“). Trebalo bi da izgleda kao u sledećem primeru.
Napomena: ukoliko ne želite da zamenite svaku instancu teksta (na primer, „jabuke“ sa „pomorandže“), uklonite g
i komanda bi trebalo da izgleda ovako: sed -i 's/apples/oranges/'
.
sed -i 's/apple/orange/g'
Na kraju, odredite sed
komandi u kom fajlu se nalazi tekst koji je potrebno zameniti. U ovom primeru, cilj je fajl fruit.txt
koji se nalazi u matičnom direktorijumu.
sed -i 's/apples/oranges/g' ~/fruit.txt
Pritisnite taster Enter da izvršite komandu i zamenite tekstualni niz u fajlu.
Zamena teksta u fajlu pomoću Perl-a
Još jedan način za zamenu tekstualnog niza u fajlu na Linux sistemu jeste korišćenjem programskog jezika Perl. Perl se često koristi za obradu teksta, pa je prirodno pogodan za zamenu tekstualnih nizova u fajlovima.
Za početak, proverite da li je Perl instaliran na vašem Linux računaru. Većina Linux distribucija dolazi sa Perl-om već instaliranim. Međutim, ukoliko ga nemate, konsultujte dokumentaciju vašeg operativnog sistema za uputstva o instalaciji.
Za zamenu teksta u fajlu pomoću Perl-a potreban je terminal. Otvorite ga pritiskom na Ctrl + Alt + T. Alternativno, potražite „Terminal“ u meniju aplikacija i pokrenite ga.
Kada je terminal otvoren, počnite tako što ćete u komandnoj liniji upisati perl -pe
. Komanda perl -pe
je neophodna za zamenu tekstualnog niza u fajlu.
perl -pe
Nakon što ste uneli perl -pe
, dodajte prvi znak navodnika. Ovaj znak označava početak dela komande u kojem se vrši zamena teksta.
perl -pe '
Nakon prvog znaka navodnika, dodajte s/
, zatim tekst koji želite da zamenite, i još jedan /
. Na primer, da biste zamenili „jabuke“ u fajlu fruit.txt
, uneli biste sledeći tekst.
perl -pe 's/apples/
Nakon što ste uneli reč(i) koje želite da zamenite, dodajte reč koja će zameniti postojeći tekst. Na primer, ako želite da zamenite „jabuke“ u fruit.txt
sa „pomorandže“, dodajte „oranges“ nakon perl -pe 's/apples/
tako da komanda izgleda ovako: perl -pe 's/apples/oranges/
.
perl -pe 's/apples/oranges/
Kada su oba niza teksta u komandi, potrebno je da navedete ulazni fajl koji Perl koristi. Na primer, ako želite da zamenite tekst u fajlu fruit.txt
, morate to navesti u komandi.
Napomena: u ovom primeru, fajl fruit.txt
se nalazi u matičnom direktorijumu (~/
). Obavezno zamenite ~/fruit.txt
lokacijom vašeg fajla da bi komanda radila.
perl -pe 's/apples/oranges/' ~/fruit.txt
Sada kada je ulazni fajl (fajl koji menjate pomoću Perl-a) dodat komandi, komanda bi trebalo da izgleda kao ispod.
perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt
Kada pokrenete gornju komandu, tekstualni niz će biti zamenjen novim tekstom koji ste naveli. U našem primeru, zamenili smo „jabuke“ sa „pomorandže“. Da biste videli promene, unesite sledeću komandu.
cat fruit.txt