Linux je sustav pun naredbi u kojima svaka igra bitnu ulogu u ponašanju određenih zadataka, bilo da se radi o upravljanju korisnicima, objektima ili podršci, svaka naredba ima svoje sudjelovanje u Linuxu, a jedna od ovih naredbi je Sed o kojoj ćemo govoriti u Solveticu u pojedinostima.
Što je sed naredba u LinuxuNaredba sed doslovno je uređivač toka koji možemo koristiti za izmjenu radova na tekstu s osnovnim funkcijama u ulaznom toku bilo iz datoteke ili unosa iz cjevovoda ako je primjenjivo.
Za razliku od drugih uređivača teksta, kod sed -a je moguće filtrirati tekst u tijeku dok pregledavamo odabrani sadržaj.
PrednostPrednosti korištenja sed -a na Linuxu su:
- Možemo odabrati tekst
- U mogućnosti smo zamijeniti tekst
- Dodajte retke u tekst
- Možemo ukloniti retke iz teksta
- Omogućuje vam izmjenu ili očuvanje izvorne datoteke
Opća sintaksa za korištenje sed je sljedeća:
sed OPTIONS… [SCRIPT] [INPUT_FILE…]Naučit ćemo neke načine korištenja ove naredbe na Linuxu.
1. Kako koristiti naredbu SED u Linuxu
Osnovna uporaba sedU ovom primjeru koristit ćemo "echo" da vidimo kako naredba sed može zamijeniti dio unesenog teksta, unosimo:
odjek solvitic | sed 's / vitic / vetic /'U ovom slučaju govorimo sed da zamijeni riječ "vitic" sa "vetic", a pritiskom na Enter ovo će biti rezultat:
POVEĆAJTE
Vidimo da je promjena automatska.
2. Odabir teksta naredbom SED Linux
Korak 1
U ovom slučaju imat ćemo tekstualnu datoteku koja se nalazi na radnoj površini:
POVEĆAJTE
Sada ćemo koristiti sljedeći redak:
manje Solvetic.txtKorak 2
Kada pritisnete Enter ovo će biti rezultat:
POVEĆAJTE
S sed -om je moguće odabrati neke retke datoteke, za to moramo naznačiti početne i posljednje retke raspona za odabir, na primjer, ako želimo izdvojiti retke dva do sedam izvršavamo:
sed -n '2,7p' Solvetic.txtKorak 3
Vidjet ćemo sljedeće:
POVEĆAJTE
Moramo imati na umu zarez u rasponima koji se dodjeljuju (2,7), parametar p označava da znači "ispis odgovarajućih linija", s tim će naredba sed ispisati sve retke tog raspona i -n (tiho ) opcija vodi računa da ne prikaže tekst koji ne odgovara tom rasponu.
Korak 4
Parametar -e (izraz) možemo koristiti za višestruki odabir, na primjer:
sed -n -e '1,2p' -e '5,6p' Solvetic.txt
POVEĆAJTE
Korak 5
S sed -om je moguće odabrati početni redak, zatim označavamo koji bi se trebao proći u datoteci i ispisati zamjenske retke, na primjer, unosimo:
sed -n '1 ~ 3p' Solvetic.txtU ovom slučaju prvi broj se odnosi na startnu liniju, a drugi broj govori sedmi koji će se redovi nakon početne crte prikazati:
POVEĆAJTE
Korak 6
Druga uporaba sed -a je mogućnost odabira redaka u kojima se nalaze odgovarajući tekstualni uzorci. Ako ne znamo odakle potječe broj retka, možemo izvršiti sljedeće:
sed -n ' / Run / p' Solvetic.txt
POVEĆAJTE
Vidjet ćemo retke koji počinju tim izrazom.
3. Kako stvoriti zamjene sa SED Linuxom
Korak 1
U osnovnom dijelu vidjeli smo kako zamijeniti tekst pomoću sed, tamo smo koristili -s (zamjena) parametar. Tada prvi niz označava uzorak pretraživanja, a drugi se odnosi na tekst kojim će se zamijeniti.
sed -n 's / tasks / actions / p' Solvetic.txtU ovom primjeru "zadatke" zamjenjujemo s "radnje":
POVEĆAJTE
Korak 2
S parametrom p sed automatski se zaustavlja nakon prvog podudaranja, za globalno pretraživanje i općenitu promjenu moramo dodati "g":
sed -n 's / tasks / actions / gp' Solvetic.txtAko želimo da ne razlikuje velika i mala slova, dodat ćemo "i":
sed -n 's / tasks / actions / gpi' Solvetic.txtKorak 3
Moguće je stvoriti ograničenja zamjena samo za određene dijelove datoteke, prije svega navodimo redove za analizu:
sed -n '1,3p' Solvetic.txt
POVEĆAJTE
Korak 4
Pogledajmo sljedeće, možemo pronaći gdje postoje dva razmaka i zamijeniti ih jednim:
sed -n '1,3 s / * / / gp' Solvetic.txtZvjezdica (*) predstavlja nulu ili više prethodno odabranog znaka.
Korak 5
Uzorak pretraživanja možete smanjiti na jedan razmak pomoću sljedeće naredbe:
sed -n '1,3 s / * / / gp' Solvetic.txtVidimo razliku u rezultatima:
POVEĆAJTE
U potonjem slučaju, zvjezdica odgovara nuli ili više prethodnog znaka, što čini da svaki znak koji nije razmak izgleda kao "nulti razmak" primjenom naredbe.
Korak 6
Da bismo izvršili dvije ili više zamjena istovremeno, izvršavamo:
sed -n -e 's / izvršeno / primijenjeno / gip' -e ' / zadaci / radnje / gip' Solvetic.txt
POVEĆAJTE
4. Mogućnosti zamjene SED -a na Linuxu
Također možemo koristiti sed za izdvajanje naziva datoteka iz sustava, u ovom slučaju moramo imati na umu da svaki objekt mora odgovarati uzorku pretraživanja (podizrazi) koji može biti numeriran (do najviše devet elemenata).
Korak 1
Ti se brojevi tada mogu koristiti za pozivanje na određene podizraze.
Podizraz mora biti zatvoren u zagrade [()], a zagradama mora prethoditi kosa crta (\) tako da se ne otkriju kao normalni znak, na primjer:
sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd
POVEĆAJTE
Varijable korištene u ovoj naredbi su
- sed 's /: označava naredbu sed i početak zamjenskog izraza.
- \ (: priloži podizraz, kojem prethodi obrnuta kosa crta
- [^:] *: je prvi podizraz pojma za pretraživanje koji sadrži grupu između zagrada, znak karete (^) znači "ne" kada se koristi u grupi, odnosno bilo koji znak koji nije dvotočka
- \): Zatvorna zagrada [)] s obrnutom kosom crtom
- . *: je drugi podizraz pretraživanja koji označava "bilo koji znak i bilo koji njihov broj".
- / \ 1: je zamjenski dio izraza koji sadrži broj 1 kojem prethodi kosa crta (\) i označava da se tekst podudara s prvim podizrazom
- / ': prekinuti naredbu sed
Korak 2
Prethodnom naredbom tražili smo bilo koji niz znakova koji ne sadrži dvotočku, budući da svaki redak datoteke / etc / passwd počinje korisničkim imenom koje završava dvotočkom. Tu vrijednost možemo zamijeniti izoliranjem korisničkog imena sljedećom naredbom:
sed 's / \ ([^:] * \) \ (. * \) / \ 2 /' / etc / passwd
POVEĆAJTE
Korak 3
Sljedećom naredbom možemo prikazati samo korisnička imena:
sed 's /:.*// "/ etc/ passwdDruga mogućnost sa sedom je korištenje parametra c (cut - cut) za zamjenu teksta u datoteci, na primjer:
sed ' / Linux / c Linux operativni sustav' Solvetic.txt
POVEĆAJTE
5. Umetnite retke i tekst sa SED -om u Linux
Korak 1
Drugi zadatak koji možete koristiti sa sedom je umetanje novih redaka i teksta u datoteku, u ovom slučaju imamo sljedeće podatke:
POVEĆAJTE
Korak 2
Možemo umetnuti novi redak koji navodi ispod kojeg će biti umetnut:
sed ' / Ub / a -> Umetnuto!' Solvetic.txt
POVEĆAJTE
Korak 3
Također je moguće koristiti naredbu Insert (i) za umetanje novog retka iznad podudaranja:
sed ' / Wi / i -> Umetnuto!' Solvetic.txt
POVEĆAJTE
Korak 4
Možemo koristiti znak ampersand (&) kako bismo dodali novi tekst u odgovarajući red u datoteci, izvršavamo:
sed 's /.*/--> Umetnut & /' Solvetic.txt
POVEĆAJTE
6. Kako izbrisati redak sa SED Linuxom
U ovom slučaju moramo upotrijebiti parametar d (brisanje) da bismo, na primjer, izbrisali drugi redak koji izvršavamo:
sed '2d' Solvetic.txt
POVEĆAJTE
Ako je potrebno, možemo ukloniti raspon:
sed '1,4d' Solvetic.txtDa bismo uklonili retke izvan raspona, moramo koristiti uskličnik (!) Kako slijedi:
sed '2,4! d' Solvetic.txt
7. Kako spremiti promjene sa SED -om u Linuxu
Korak 1
Za primjenu izvršenih promjena moguće je koristiti opciju In-place (-i) kako bi sed upisao promjene u izvornu datoteku, ali radi veće sigurnosti možemo dodati sigurnosno proširenje na sljedeći način (napravili smo sigurnosnu kopiju redovi koji sadrže riječ Wi):
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txtNavodimo sadržaj:
mačka Solvetic.txt.bak
POVEĆAJTE
Korak 2
Moguće je preusmjeriti izlaz u novu datoteku sa istim rezultatima:
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt
POVEĆAJTE
S sed -om možemo raditi s datotekama na potpuno potpun način u Linuxu jer smo vidjeli svaku od njegovih mogućnosti uporabe.