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.txtTrin 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.txtTrin 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.txtI 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.txtI 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.txtHvis 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.txtTrin 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.txtStjernen (*) 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.txtVi 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/ passwdEn 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.txtFor 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.txtVi 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.