▷ Sådan bruges SED -kommandoen i Linux - EKSEMPLER

Linux er et system fuld af kommandoer, hvor hver enkelt spiller en væsentlig rolle i adfærden for visse opgaver, uanset om de er bruger-, objekt- eller supportstyring, hver kommando har sin deltagelse i Linux, og en af ​​disse kommandoer er Sed, som vi vil tale om hos Solvetic i detaljer.

Hvad er sed -kommandoen i LinuxSed -kommandoen er bogstaveligt talt en flow -editor, som vi kan bruge til at ændre værker på teksten med grundlæggende funktioner i et inputflow enten fra en fil eller input fra en pipeline, hvis det er relevant.

I modsætning til andre tekstredigerere er det med sed muligt at filtrere tekst i en pipeline, når vi går over det valgte indhold.

FordelFordelene ved at bruge sed på Linux er:

  • Vi kan vælge tekst
  • Vi er i stand til at erstatte tekst
  • Føj linjer til tekst
  • Vi kan fjerne linjer fra teksten
  • Giver dig mulighed for at ændre eller bevare en originalfil

Den generelle syntaks for brug af sed er som følger:

 sed OPTIONS… [SCRIPT] [INPUT_FILE…]
Vi lærer nogle måder at bruge denne kommando på Linux.

1. Sådan bruges SED -kommandoen i Linux

Grundlæggende brug af sedI dette eksempel vil vi bruge "ekko" til at se, hvordan sed -kommandoen kan erstatte en del af den indtastede tekst, vi indtaster:

 ekko solvitisk | sed 's / vitic / vetic /'
I dette tilfælde fortæller vi sed at erstatte ordet "vitic" med "vetic", når du trykker på Enter, vil dette være resultatet:

FORSTØRRE

Vi ser, at ændringen er automatisk.

2. Markering af tekst med SED Linux -kommandoen

Trin 1
I dette tilfælde vil vi have en tekstfil, der er hostet på skrivebordet:

FORSTØRRE

Nu vil vi bruge følgende linje:

 mindre Solvetic.txt
Trin 2
Når du trykker på Enter, vil dette være resultatet:

FORSTØRRE

Med sed er det muligt at vælge nogle linjer i filen, for dette skal vi angive de første og sidste linjer i det område, der skal vælges, for eksempel hvis vi vil udtrække linjer to til syv, vi udfører:

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

FORSTØRRE

Vi skal huske kommaet i de områder, der skal tildeles (2,7), parameteren p angiver, at det betyder "udskriv matchende linjer", med dette vil sed -kommandoen udskrive alle linjer i dette område og -n (stille ) option sørger for ikke at vise tekst, der ikke matcher dette område.

Trin 4
Vi kan bruge parameteren -e (udtryk) til at foretage flere valg, for eksempel:

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

FORSTØRRE

Trin 5
Med sed er det muligt at vælge startlinjen, så angiver vi, hvilken der skal krydses i filen, og for at udskrive de alternative linjer, f.eks. Indtaster vi:

 sed -n '1 ~ 3p' Solvetic.txt
I dette tilfælde refererer det første tal til startlinjen, og det andet tal fortæller sed, hvilke linjer efter startlinjen der vil blive vist:

FORSTØRRE

Trin 6
En anden brug af sed er muligheden for at vælge linjer, hvor de matchende tekstmønstre er, dette hvis vi ikke ved, hvor linjenummeret stammer fra, kan vi udføre følgende:

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

FORSTØRRE

Vi vil se de linjer, der starter med dette udtryk.

3. Sådan oprettes udskiftninger med SED Linux

Trin 1
I den grundlæggende del så vi, hvordan man erstatter tekst ved hjælp af sed, der brugte vi parameteren -s (substitution). Derefter angiver den første streng søgemønsteret, og den anden refererer til teksten, som den skal udskiftes med.

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

FORSTØRRE

Trin 2
Med parameteren p sed stopper den automatisk efter den første kamp, ​​for at udføre en global søgning og foretage ændringen generelt skal vi tilføje "g":

 sed -n 's / task / actions / gp' Solvetic.txt
Hvis vi vil have det til at være ufølsomt for store og små bogstaver, tilføjer vi "i":
 sed -n 's / task / actions / gpi' Solvetic.txt
Trin 3
Det er muligt at oprette begrænsninger for udskiftninger kun til bestemte sektioner af filen, først viser vi de linjer, der skal analyseres:
 sed -n '1,3p' Solvetic.txt

FORSTØRRE

Trin 4
Lad os se følgende, vi kan finde, hvor der er to mellemrum og erstatte dem med et:

 sed -n '1.3 s / * / / gp' Solvetic.txt
Stjernen (*) repræsenterer nul eller flere af det tidligere valgte tegn.

Trin 5
Du kan reducere søgemønsteret til et enkelt mellemrum med følgende kommando:

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

FORSTØRRE

I sidstnævnte tilfælde matcher stjernen nul eller flere af det forrige tegn, hvilket får hvert ikke-mellemrumstegn til at ligne et "nulrum" ved at anvende kommandoen.

Trin 6
For at foretage to eller flere substitutioner samtidigt udfører vi:

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

FORSTØRRE

4. SED -udskiftningsmuligheder på Linux


Vi kan også bruge sed til at udtrække filnavne fra systemet, i dette tilfælde skal vi huske på, at hvert objekt skal matche et søgemønster (underudtryk), der kan nummereres (op til maksimalt ni elementer).

Trin 1
Disse tal kan derefter bruges til at henvise til specifikke underudtryk.
Overudtrykket skal være omsluttet af parenteser [()], og parenteserne skal have en omvendt skråstreg (\), så de ikke opdages som en normal karakter, f.eks .:

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

FORSTØRRE

De variabler, der bruges i denne kommando, er

  • sed 's /: angiver sed -kommandoen og starten på erstatningsudtrykket.
  • \ (: vedlæg underudtryk, forud for en skråstreg
  • [^:] *: er den første underudtryk af søgeudtrykket, der indeholder en gruppe mellem parenteser, tegnet (^) betyder "nej", når det bruges i en gruppe, det vil sige ethvert tegn, der ikke er et kolon
  • \): Den afsluttende parentes []] med en skråstreg
  • . *: er den anden subexpression i søgningen, der angiver "ethvert tegn og et vilkårligt antal af disse".
  • / \ 1: er erstatningsdelen af ​​udtrykket, der indeholder et nummer 1 forud for en omvendt skråstreg (\) og angiver, at teksten matcher den første underudtryk
  • / ': afslut sed -kommandoen

Trin 2
Med den forrige kommando har vi søgt efter en tegnstreng, der ikke indeholder et kolon, da hver linje i filen / etc / passwd starter med brugernavnet, der ender i et kolon. Vi kan erstatte denne værdi ved at isolere brugernavnet med følgende kommando:

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

FORSTØRRE

Trin 3
Vi kan kun vise brugernavne med følgende kommando:

 sed 's /:.*// "/ etc/ passwd
En anden mulighed med sed er at bruge parameteren c (cut - cut) til at erstatte tekst i en fil, for eksempel:
 sed ' / Linux / c Linux operativsystem' Solvetic.txt

FORSTØRRE

5. Indsæt linjer og tekst med SED i Linux

Trin 1
En anden opgave at bruge med sed er at indsætte nye linjer og tekst i en fil, i dette tilfælde har vi følgende data:

FORSTØRRE

Trin 2
Vi kan indsætte en ny linje, som angiver nedenfor, hvor den vil blive indsat:

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

FORSTØRRE

Trin 3
Det er også muligt at bruge kommandoen Indsæt (i) for at indsætte en ny linje over kampen:

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

FORSTØRRE

Trin 4
Vi kan bruge ampersand -tegnet (&) for at tilføje ny tekst til en matchende linje i filen, vi udfører:

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

FORSTØRRE

6. Sådan slettes en linje med SED Linux


I dette tilfælde skal vi bruge parameteren d (slet), for at slette f.eks. Den anden linje, vi udfører:
 sed '2d' Solvetic.txt

FORSTØRRE

Vi kan fjerne et område, hvis det er nødvendigt:

 sed '1,4d' Solvetic.txt
For at fjerne linjer uden for et område skal vi bruge et udråbstegn (!) Som følger:
 sed '2,4! d' Solvetic.txt

7. Sådan gemmes ændringer med SED i Linux

Trin 1
For at anvende de foretagne ændringer er det muligt at bruge indstillingen på stedet (-i) for at sed kan skrive ændringerne til den originale fil, men for større sikkerhed kan vi tilføje en backupudvidelse som følger (vi har sikkerhedskopieret linjerne, der indeholder ordet Wi):

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt
Vi angiver indholdet:
 kat Solvetic.txt.bak

FORSTØRRE

Trin 2
Det er muligt at omdirigere output til en ny fil med de samme resultater:

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

FORSTØRRE

Med sed kan vi arbejde med filerne på en fuldstændig fuldstændig måde i Linux, da vi har set hver af dens anvendelsesmuligheder.

wave wave wave wave wave