Å redigere tekstfiler og terminalutgang er en daglig jobb for de som administrerer Linux-maskiner. Kommandolinjeverktøy som sed tillater en bruker å endre og endre innholdet i en tekstfil rett fra terminalvinduet.

I denne artikkelen vil vi diskutere sed-kommandoen i detalj, sammen med noen viktige eksempler som viser kraften til sed-verktøyet i Linux.

Hva er sed Command?

Sed-kommandoen, som er et akronym for Stream Editor, er et kommandolinjeverktøy som lar Linux-brukere utføre tekstbaserte operasjoner på filer og terminalutganger. Ved hjelp av sed kan brukere finne og erstatte bestemte ord i en tekst, vise en viss del av utdataene og redigere tekstfiler uten å åpne dem.

De tre grunnleggende operasjonene som støttes av sed-kommandoen er:

  1. Innsetting
  2. Sletting
  3. Bytte (Finn og erstatt)

Avanserte brukere kan også implementere vanlige uttrykk med sed-kommandoen for å redigere tekststrømmer mer effektivt.

Den grunnleggende syntaksen til kommandoen er:

sed [opsjoner] [mønster] [filbane]

...hvor alternativer er de forskjellige funksjonene i kommandoen, mønster er det vanlige uttrykket eller skriptet du vil matche, og filesti er banen til tekstfilen som inneholder teksten.

10 eksempler på Linux sed Command

Hvis du planlegger å bli en vanlig Linux-bruker, kan det være nyttig for deg å vite hvordan du redigerer filer, søke og erstatte bestemte ord og filtrere terminalutgangen. Denne delen dekker noen eksempler på kommandoen sed som definitivt vil gjøre deg til en Linux-strømbruker.

Vi vil bruke følgende tekstfil for demonstrasjon i innlegget.

Dette er en demo-tekstfil.
Det er en fantastisk fil som vil hjelpe oss alle.
Sed-kommandoen er også flott for strømredigering.
Vil du lære hvordan du bruker kommandoen?
Dette er en annen linje i filen.
Dette er den tredje generelle linjen i filen.
Denne filen er navngitt som tekstfil.
Dette er et eple.
Dette er en appelsin.

1. Vis en rekke linjer

Linux-kommandoer som hode og hale sender ut de første eller de siste ti linjene i en tekstfil. Men hva om du vil få innholdet mellom to spesifikke linjer i en fil? I slike situasjoner kan sed-kommandoen komme til nytte.

Å sende innholdet mellom linje 3 og 5 i filen textfile.txt:

sed -n '3,5p' textfile.txt

De -n flagg hindrer sed fra å vise mønsterområdet på slutten av hver syklus. Du kan også bruke --stille og --stille alternativer i stedet for -n. De s argument står for skrive ut og brukes til å vise de samsvarende linjene til brukeren.

Å utføre den nevnte kommandoen på eksempelfilen gir følgende utdata.

Sed-kommandoen er også flott for strømredigering.
Vil du lære hvordan du bruker kommandoen?
Dette er en annen linje i filen.

Hvis du vil sende ut hele filinnholdet, unntatt det angitte området, bruker du d flagg i stedet for s i kommandoen:

sed '3,5d' textfile.txt

De d flagg sletter de samsvarende strengene fra utdataene og viser resten av innholdet.

Dette er en demo-tekstfil.
Det er en fantastisk fil som vil hjelpe oss alle.
Dette er den tredje generelle linjen i filen.
Denne filen er navngitt som tekstfil.
Dette er et eple.
Dette er en appelsin.

2. Vis linjer som ikke er sammenhengende

Slik skriver du ut ikke sammenhengende linjer mellom flere områder i filen:

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

Produksjon:

Dette er en demo-tekstfil.
Det er en fantastisk fil som vil hjelpe oss alle.
Dette er en annen linje i filen.
Dette er den tredje generelle linjen i filen.

De -e flagg hjelper til utfører flere handlinger ved hjelp av en enkelt kommando.

3. Sett inn mellomrom mellom linjer

Hvis du av en eller annen grunn vil sette inn tomme linjer mellom hver linje i en tekstfil, bruker du G argument med standard sed-kommandoen.

sed G textfile.txt

For å sette inn flere tomme linjer i utdataene, send flere G argumenter atskilt med semikolon (;) karakter.

sed 'G; G 'textfile.txt

4. Bytt ut et ord i en tekstfil

Hvis du vil erstatte hver forekomst av et bestemt ord med et annet ord, bruker du s og g argumenter med kommandoen. Den grunnleggende syntaksen for å erstatte ord ved hjelp av kommandoen sed er:

sed s / originalword / replaceword / g filnavn

Ved å bruke den ovennevnte syntaksen kan du erstatte ordet fantastisk med super i filen textfile.txt:

sed s / fantastisk / super / g textfile.txt

De s argument betegner bytte og g kommandoen brukes til å erstatte det samsvarende innholdet med det angitte erstatningsinnholdet.

For å erstatte den andre forekomsten av ordet med sed, send et tall til g argument. I dette tilfellet:

sed s / fantastisk / super / g2 textfile.txt

Hvis du vil ignorere tegnsaker mens du erstatter ord, bruk gi i stedet for g, hvor Jeg står for overse sak.

sed s / Amazing / super / gi textfile.txt

I slekt: Bruker vi? Slik åpner du en fil, og deretter lagrer du og avslutter

5. Erstatt ord innenfor et område

Du kan også erstatte ord innenfor et bestemt område.

sed '2,5s / fantastisk / super / g' textfile.txt

6. Utfør flere erstatninger samtidig

Hvis du vil utføre to eller flere erstatninger på en gang, er det bare å skille kommandoene med semikolon (;) karakter.

sed 's / fantastisk / super / g; s / command / utility / gi 'textfile.txt

Systemet viser følgende utdata.

Dette er en demo-tekstfil.
Det er en superfil som vil hjelpe oss alle.
Sed-verktøyet er også flott for strømredigering.
Vil du lære hvordan du bruker verktøyet?
Dette er en annen linje i filen.
Dette er den tredje generelle linjen i filen.
Denne filen er navngitt som tekstfil.
Dette er et eple.
Dette er en appelsin.

7. Erstatt ord bare hvis en samsvar er funnet

Du kan også bruke kommandoen sed for å erstatte et ord bare hvis en gitt samsvar blir funnet i linjen. For eksempel å erstatte ordet en med en hvis ordet oransje er til stede i linjen:

sed -e '/ orange / s / a / an / g' textfile.txt

Å utstede ovennevnte kommando vil sende:

Dette er en demo-tekstfil.
Det er en superfil som vil hjelpe oss alle.
Sed-verktøyet er også flott for strømredigering.
Vil du lære hvordan du bruker verktøyet?
Dette er en annen linje i filen.
Dette er den tredje generelle linjen i filen.
Denne filen er navngitt som tekstfil.
Dette er et eple.
Dette er en appelsin.

Merk at ordet en i køen Dette er et eple ble ikke erstattet ettersom systemet ikke fant ordet oransje i det.

8. Erstatt ord som bruker regulære uttrykk

For de som vet hvordan man bruker vanlige uttrykk, blir det mye enklere å utføre operasjoner på strenger ved hjelp av sed-kommandoen. Du kan implementere vanlige uttrykk for å styrke styrken i kommandoen.

Å erstatte alle forekomster av ordet Fantastisk eller fantastisk med super:

sed -e 's / [Aa] mazing / super / g' textfile.txt

På samme måte kan du også bruke avanserte regulære uttrykk for å utføre spesifikke operasjoner ved hjelp av kommandoen sed.

9. Rør sed med andre kommandoer

Du kan også kjede sed med andre Linux-kommandoer. For eksempel kan du rør lspci kommando med sed for å legge til tomme mellomrom mellom linjene i utgangen.

lspci | sed G

Å erstatte bestemte ord i utdataene fra ip ruteshow kommando:

ip ruteshow | sed s / src / kilde / g

Den nevnte kommandoen erstatter ordet kilde i stedet for det opprinnelige ordet src.

I slekt: Hvordan bruke Finn kommandoen til å søke etter filer i Linux

10. Rediger og sikkerhetskopier den originale filen

Når du jobber med systemfiler, er det viktig å sikkerhetskopiere den originale filen mens du gjør endringer. Dette vil hjelpe deg med å tilbakestille endringene i tilfelle noe går i stykker.

For å sikkerhetskopiere originalfilen ved hjelp av sed, bruk -Jeg flagg i kommandoen.

sed -i'.backup 's / amazing / super / g' textfile.txt

En ny fil vil bli opprettet med navnet textfile.txt.backup. Du kan sjekke at de to filene er forskjellige ved hjelp av forskjell kommando.

diff textfile.txt textfile.txt.backup

Redigere strenger i Linux med sed

Noen ganger, mens du jobber med tekstfiler på terminalen, blir formatering og redigering av utdata for bedre lesbarhet et must. Sed og awk er kommandolinjeverktøy i Linux som tillater en bruker å jobbe effektivt med tekstfiler ved å dele dataene i separate linjer.

Mange brukere har vanskelig for å huske argumentene og flaggene til sed-kommandoen siden det er mange av dem som er tilgjengelige å bruke. Å vite hvordan du får kommandolinjemanualer for en hvilken som helst Linux-kommando, vil hjelpe deg med å komme deg ut av slike situasjoner enkelt.

E-post
7 måter å få kommandolinjehjelp på Linux

Alle viktige kommandoer for å lære om Linux-kommandoer fra kommandolinjen

Les Neste

Relaterte temaer
  • Linux
  • Tekstredigerer
  • Terminal
  • Ledeteksten
Om forfatteren
Deepesh Sharma (36 artikler publisert)

Deepesh er Junior Editor for Linux på MUO. Han har skrevet informasjonsinnhold på internett i over 3 år. På fritiden liker han å skrive, høre på musikk og spille gitaren.

Mer fra Deepesh Sharma

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.