▷ Hvordan bruke SED -kommandoen i Linux - EKSEMPLER

Linux er et system fullt av kommandoer der hver enkelt spiller en vesentlig rolle i oppførselen til bestemte oppgaver, enten de er bruker-, objekt- eller støttehåndtering, hver kommando har sin deltakelse i Linux, og en av disse kommandoene er Sed som vi vil snakke om hos Solvetic i detaljer.

Hva er sed -kommandoen i LinuxSed -kommandoen er bokstavelig talt en flytredigerer som vi kan bruke for å endre arbeider på teksten med grunnleggende funksjoner i en inngangsflyt, enten fra en fil eller inndata fra en rørledning hvis det er aktuelt.

I motsetning til andre tekstredigerere, er det med sed mulig å filtrere tekst i en pipeline når vi går over det valgte innholdet.

FordelFordelene med å bruke sed på Linux er:

  • Vi kan velge tekst
  • Vi kan erstatte tekst
  • Legg til linjer i teksten
  • Vi kan fjerne linjer fra teksten
  • Lar deg endre eller bevare en originalfil

Den generelle syntaksen for bruk av sed er som følger:

 sed OPTIONS… [SCRIPT] [INPUT_FILE…]
Vi vil lære noen måter å bruke denne kommandoen på Linux.

1. Slik bruker du SED -kommandoen i Linux

Grunnleggende bruk av sedFor dette eksemplet skal vi bruke "ekko" for å se hvordan sed -kommandoen kan erstatte en del av den angitte teksten, vi skriver inn:

 ekko solvitisk | sed 's / vitic / vetic /'
I dette tilfellet forteller vi sed å erstatte ordet "vitic" med "vetic", når du trykker Enter vil dette bli resultatet:

FORSTØRRE

Vi ser at endringen er automatisk.

2. Velge tekst med SED Linux -kommandoen

Trinn 1
I dette tilfellet vil vi ha en tekstfil som ligger på skrivebordet:

FORSTØRRE

Nå skal vi bruke følgende linje:

 mindre Solvetic.txt
Steg 2
Når du trykker Enter vil dette bli resultatet:

FORSTØRRE

Med sed er det mulig å velge noen linjer i filen, for dette må vi angi de første og siste linjene i området som skal velges, for eksempel hvis vi ønsker å trekke ut linjer to til syv vi utfører:

 sed -n '2,7p' Solvetic.txt
Trinn 3
Vi vil se følgende:

FORSTØRRE

Vi må huske kommaet i områdene som skal tilordnes (2,7), parameteren p indikerer at det betyr "skriv ut matchende linjer", med dette vil sed -kommandoen skrive ut alle linjene i det området og -n (stille ) alternativet passer på å ikke vise tekst som ikke samsvarer med dette området.

Trinn 4
Vi kan bruke parameteren -e (uttrykk) for å gjøre flere valg, for eksempel:

 sed -n -e '1,2p' -e '5,6p' Solvetic.txt

FORSTØRRE

Trinn 5
Med sed er det mulig å velge startlinjen, så angir vi hvilken som skal krysses i filen og for å skrive ut de alternative linjene, for eksempel skriver vi inn:

 sed -n '1 ~ 3p' Solvetic.txt
I dette tilfellet refererer det første tallet til startlinjen og det andre tallet forteller sed hvilke linjer etter startlinjen som skal vises:

FORSTØRRE

Trinn 6
En annen bruk av sed er muligheten til å velge linjer der de matchende tekstmønstrene er, dette hvis vi ikke vet hvor linjenummeret stammer fra, kan vi utføre følgende:

 sed -n ' / Run / p' Solvetic.txt

FORSTØRRE

Vi vil se linjene som starter med det begrepet.

3. Hvordan lage erstatninger med SED Linux

Trinn 1
I den grunnleggende delen så vi hvordan vi kan erstatte tekst med sed, der brukte vi parameteren -s (substitusjon). Deretter angir den første strengen søkemønsteret, og den andre refererer til teksten den skal erstattes med.

 sed -n 's / task / actions / p' Solvetic.txt 
I dette eksemplet erstatter vi "oppgaver" med "handlinger":

FORSTØRRE

Steg 2
Med parameteren p sed stopper den automatisk etter den første kampen, for å utføre et globalt søk og gjøre endringen generelt må vi legge til "g":

 sed -n 's / tasks / actions / gp' Solvetic.txt
Hvis vi vil at det ikke skal skille mellom store og små bokstaver, legger vi til "i":
 sed -n 's / tasks / actions / gpi' Solvetic.txt
Trinn 3
Det er mulig å opprette begrensninger på erstatninger bare til visse deler av filen, først viser vi linjene som skal analyseres:
 sed -n '1,3p' Solvetic.txt

FORSTØRRE

Trinn 4
La oss se følgende, vi kan finne hvor det er to mellomrom og erstatte dem med ett:

 sed -n '1.3 s / * / / gp' Solvetic.txt
Stjernen (*) representerer null eller flere av det tidligere valgte tegnet.

Trinn 5
Du kan redusere søkemønsteret til et enkelt mellomrom med følgende kommando:

 sed -n '1.3 s / * / / gp' Solvetic.txt
Vi ser forskjellen i resultatene:

FORSTØRRE

I sistnevnte tilfelle samsvarer stjernen med null eller flere av det forrige tegnet, dette får hvert ikke-mellomromstegn til å ligne et "nullrom" ved å bruke kommandoen.

Trinn 6
For å gjøre to eller flere substitusjoner samtidig utfører vi:

 sed -n -e 's / executed / applied / gip' -e 's / tasks / actions / gip' Solvetic.txt

FORSTØRRE

4. SED -erstatningsalternativer på Linux


Vi kan også bruke sed til å trekke ut filnavn fra systemet, i dette tilfellet må vi huske på at hvert objekt må matche et søkemønster (underuttrykk) som kan nummereres (opptil maksimalt ni elementer).

Trinn 1
Disse tallene kan deretter brukes til å referere til spesifikke underuttrykk.
Overuttrykket må være omsluttet av parenteser [()], og parentesene må gå foran en skråstrek (\) slik at de ikke blir oppdaget som et normalt tegn, for eksempel:

 sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd

FORSTØRRE

Variablene som brukes i denne kommandoen er

  • sed 's /: angir sed -kommandoen og starten på erstatningsuttrykket.
  • \ (: vedlegg underuttrykket, etter et bakoverstrekk
  • [^:] *: er den første supekspressionen av søkeordet som inneholder en gruppe mellom parenteser, tegnet (^) betyr "nei" når det brukes i en gruppe, det vil si et tegn som ikke er et kolon
  • \): Den avsluttende parentesen [)] med en skråstrek
  • . *: er den andre subekspresjonen i søket som indikerer "et hvilket som helst tegn og et hvilket som helst antall av disse".
  • / \ 1: er erstatningsdelen av uttrykket som inneholder et tall 1 foran et bakoverstrekk (\) og indikerer at teksten samsvarer med den første subekspressionen
  • / ': avslutt sed -kommandoen

Steg 2
Med den forrige kommandoen har vi søkt etter en tegnstreng som ikke inneholder et kolon, siden hver linje i / etc / passwd -filen starter med brukernavnet som ender på et kolon. Vi kan erstatte denne verdien ved å isolere brukernavnet med følgende kommando:

 sed 's / \ ([^:] * \) \ (. * \) / \ 2 /' / etc / passwd

FORSTØRRE

Trinn 3
Vi kan bare vise brukernavnene med følgende kommando:

 sed 's /:.*// "/ etc/ passwd
Et annet alternativ med sed er å bruke c (cut - cut) parameteren for å erstatte tekst i en fil, for eksempel:
 sed ' / Linux / c Linux operativsystem' Solvetic.txt

FORSTØRRE

5. Sett inn linjer og tekst med SED i Linux

Trinn 1
En annen oppgave å bruke med sed er å sette inn nye linjer og tekst i en fil, i dette tilfellet har vi følgende data:

FORSTØRRE

Steg 2
Vi kan sette inn en ny linje som angir under hvilken den skal settes inn:

 sed ' / Ub / a -> Innsatt!' Solvetic.txt

FORSTØRRE

Trinn 3
Det er også mulig å bruke kommandoen Sett inn (i) for å sette inn en ny linje over kampen:

 sed ' / Wi / i -> Innsatt!' Solvetic.txt

FORSTØRRE

Trinn 4
Vi kan bruke ampersand -tegnet (&) for å legge til ny tekst på en matchende linje i filen, utfører vi:

 sed 's /.*/--> Innsatt & /' Solvetic.txt

FORSTØRRE

6. Slik sletter du en linje med SED Linux


I dette tilfellet må vi bruke parameteren d (slette), for å slette for eksempel den andre linjen vi utfører:
 sed '2d' Solvetic.txt

FORSTØRRE

Vi kan fjerne et område om nødvendig:

 sed '1,4d' Solvetic.txt
For å fjerne linjer utenfor et område, må vi bruke et utropstegn (!) Som følger:
 sed '2,4! d' Solvetic.txt

7. Slik lagrer du endringer med SED i Linux

Trinn 1
For å anvende endringene som er gjort, er det mulig å bruke alternativet på stedet (-i) for at sed skal skrive endringene i den opprinnelige filen, men for større sikkerhet kan vi legge til en tilleggsutvidelse som følger (vi har sikkerhetskopiert linjene som inneholder ordet Wi):

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt
Vi lister innholdet:
 katt Solvetic.txt.bak

FORSTØRRE

Steg 2
Det er mulig å omdirigere utdataene til en ny fil med de samme resultatene:

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt

FORSTØRRE

Med sed kan vi jobbe med filene på en fullstendig måte i Linux siden vi har sett alle bruksalternativene.

wave wave wave wave wave