▷ Kako koristiti naredbu SED u Linuxu - PRIMJERI

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.txt
Korak 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.txt
Korak 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.txt
U 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.txt 
U 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.txt
Ako želimo da ne razlikuje velika i mala slova, dodat ćemo "i":
 sed -n 's / tasks / actions / gpi' Solvetic.txt
Korak 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.txt
Zvjezdica (*) 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.txt
Vidimo 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/ passwd
Druga 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.txt
Da 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.txt
Navodimo 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.

wave wave wave wave wave