Redigering af tekstfiler og terminaloutput er et dagligt job for dem, der administrerer Linux-maskiner. Kommandolinjefunktioner som sed tillader en bruger at ændre og ændre indholdet af en tekstfil lige fra terminalvinduet.

I denne artikel vil vi diskutere sed-kommandoen detaljeret sammen med nogle vigtige eksempler, der demonstrerer kraften i sed-værktøjet i Linux.

Hvad er den sed kommando?

Sed-kommandoen, som er et akronym for Stream Editor, er et kommandolinjeværktøj, der giver Linux-brugere mulighed for at udføre tekstbaserede operationer på filer og terminaludgange. Brug af sed kan brugere finde og erstatte bestemte ord i en tekst, vise et bestemt afsnit af output og redigere tekstfiler uden at åbne dem.

De tre grundlæggende operationer understøttet af sed-kommandoen er:

  1. Indskud
  2. Sletning
  3. Udskiftning (Find og udskift)

Avancerede brugere kan også implementere regulære udtryk med kommandoen sed for at redigere tekststrømme mere effektivt.

Den grundlæggende syntaks for kommandoen er:

instagram viewer
sed [optioner] [mønster] [filsti]

...hvor muligheder er de forskellige funktioner i kommandoen, mønster er det regulære udtryk eller det script, som du vil matche, og filesti er stien til den tekstfil, der indeholder teksten.

10 eksempler på Linux sed Command

Hvis du planlægger at blive en almindelig Linux-bruger, kan det være nyttigt for dig at vide, hvordan du redigerer filer, søge i og erstatte bestemte ord og filtrere terminaludgangen. Dette afsnit dækker nogle eksempler på kommandoen sed, der helt sikkert vil gøre dig til en Linux-strømbruger.

Vi bruger følgende tekstfil til demonstration i posten.

Dette er en demo-tekstfil.
Det er en fantastisk fil, der vil hjælpe os alle.
Sed-kommandoen er også fantastisk til streamredigering.
Vil du lære at bruge kommandoen?
Dette er en anden linje i filen.
Dette er den tredje generelle linje i filen.
Denne fil er navngivet som tekstfil.
Dette er et æble.
Dette er en appelsin.

1. Se en række linjer

Linux-kommandoer som hoved og hale udgange de første eller de sidste ti linjer i en tekstfil. Men hvad hvis du vil hente indholdet mellem to specifikke linjer i en fil? I sådanne situationer kan kommandoen sed komme til nytte.

At outputte indholdet mellem linie 3 og 5 i filen textfile.txt:

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

Det -n flag forhindrer sed i at vise mønsterområdet i slutningen af ​​hver cyklus. Du kan også bruge --rolige og --stille indstillinger i stedet for -n. Det s argument står for Print og bruges til at vise de matchede linjer til brugeren.

Udførelse af ovennævnte kommando på eksempelfilen producerer følgende output.

Sed-kommandoen er også fantastisk til streamredigering.
Vil du lære at bruge kommandoen?
Dette er en anden linje i filen.

Hvis du vil outputte hele filindholdet undtagen det angivne interval, skal du bruge d flag i stedet for s i kommandoen:

sed '3,5d' textfile.txt

Det d flag sletter de matchede strenge fra output og viser resten af ​​indholdet.

Dette er en demo-tekstfil.
Det er en fantastisk fil, der vil hjælpe os alle.
Dette er den tredje generelle linje i filen.
Denne fil er navngivet som tekstfil.
Dette er et æble.
Dette er en appelsin.

2. Vis ikke-sammenhængende linjer

Sådan udskrives ikke-fortløbende linjer mellem flere områder i filen:

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

Produktion:

Dette er en demo-tekstfil.
Det er en fantastisk fil, der vil hjælpe os alle.
Dette er en anden linje i filen.
Dette er den tredje generelle linje i filen.

Det -e flag hjælper med udførelse flere handlinger ved hjælp af en enkelt kommando.

3. Indsæt mellemrum mellem linjer

Hvis du af en eller anden grund vil indsætte tomme linjer mellem hver linje i en tekstfil, skal du bruge G argument med standardkommandoen sed.

sed G textfile.txt

Hvis du vil indsætte flere tomme linjer i output, skal du sende flere G argumenter adskilt af semikolon (;) Karakter.

sed 'G; G 'textfile.txt

4. Udskift et ord i en tekstfil

Hvis du vil erstatte hver forekomst af et bestemt ord med et andet ord, skal du bruge s og g argumenter med kommandoen. Den grundlæggende syntaks for at erstatte ord ved hjælp af kommandoen sed er:

sed s / originalword / replaceword / g filnavn

Ved hjælp af ovennævnte syntaks kan du erstatte ordet fantastiske med super i filen textfile.txt:

sed s / forbløffende / super / g textfile.txt

Det s argument betegner udskiftning og g kommando bruges til at erstatte det matchede indhold med det angivne erstatningsindhold.

For at erstatte den anden forekomst af ordet med sed, skal du sende et tal til g argument. I dette tilfælde:

sed s / forbløffende / super / g2 textfile.txt

Hvis du vil ignorere tegn, mens du erstatter ord, skal du bruge gi i stedet for g, hvor jeg står for ignorere sag.

sed s / Amazing / super / gi textfile.txt

Relaterede: Bruger vi? Sådan åbner du en fil, så gem og afslut

5. Erstat ord inden for et område

Du kan også erstatte ord inden for et bestemt område.

sed '2,5s / forbløffende / super / g' textfile.txt

6. Udfør flere udskiftninger på én gang

Hvis du vil udføre to eller flere erstatninger på én gang, skal du bare adskille kommandoerne med semikolon (;) Karakter.

sed 's / forbløffende / super / g; s / command / utility / gi 'textfile.txt

Systemet viser følgende output.

Dette er en demo-tekstfil.
Det er en superfil, der hjælper os alle.
Sed-værktøjet er også fantastisk til streamredigering.
Vil du lære at bruge værktøjet?
Dette er en anden linje i filen.
Dette er den tredje generelle linje i filen.
Denne fil er navngivet som tekstfil.
Dette er et æble.
Dette er en appelsin.

7. Udskift kun ord, hvis der findes en match

Du kan også kun bruge kommandoen sed til at erstatte et ord, hvis der findes et givet match i linjen. For eksempel at erstatte ordet -en med en hvis ordet orange er til stede i linjen:

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

Udstedelse af ovennævnte kommando vil output:

Dette er en demo-tekstfil.
Det er en superfil, der hjælper os alle.
Sed-værktøjet er også fantastisk til streamredigering.
Vil du lære at bruge værktøjet?
Dette er en anden linje i filen.
Dette er den tredje generelle linje i filen.
Denne fil er navngivet som tekstfil.
Dette er et æble.
Dette er en appelsin.

Bemærk, at ordet -en i køen Dette er et æble blev ikke erstattet, da systemet ikke fandt ordet orange i det.

8. Erstat ord, der bruger regulære udtryk

For dem, der ved, hvordan man bruger regelmæssige udtryk, bliver det meget nemmere at udføre operationer på strenge ved hjælp af kommandoen sed. Du kan implementere regulære udtryk for at forbedre styrken i kommandoen.

For at erstatte alle forekomster af ordet Fantastiske eller fantastiske med super:

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

På samme måde kan du også bruge avancerede regulære udtryk til at udføre specifikke operationer ved hjælp af kommandoen sed.

9. Rør sed med andre kommandoer

Du kan også kæde sed med andre Linux-kommandoer. For eksempel kan du rør lspci kommando med sed for at tilføje tomme mellemrum mellem linjerne i output.

lspci | sed G

For at erstatte bestemte ord i output af IP-ruteshow kommando:

ip-ruteshow | sed s / src / kilde / g

Den førnævnte kommando erstatter ordet kilde i stedet for det oprindelige ord src.

Relaterede: Sådan bruges Find Command til at søge efter filer i Linux

10. Rediger og sikkerhedskopier den originale fil

Når du arbejder med systemfiler, er det vigtigt at tage backup af den originale fil, mens du foretager ændringer. Dette hjælper dig med at tilbageføre ændringerne, hvis noget går i stykker.

Hvis du vil sikkerhedskopiere den originale fil ved hjælp af sed, skal du bruge -jeg flag i kommandoen.

sed -i'.backup 's / forbløffende / super / g' textfile.txt

En ny fil oprettes med navnet textfile.txt.backup. Du kan kontrollere, at de to filer er forskellige ved hjælp af diff kommando.

diff textfile.txt textfile.txt.backup

Redigering af strenge i Linux med sed

Nogle gange, mens du arbejder med tekstfiler på terminalen, bliver formatering og redigering af output for bedre læsbarhed et must. Sed og awk er kommandolinjeværktøjer i Linux, der giver brugeren mulighed for at arbejde effektivt med tekstfiler ved at opdele dataene i separate linjer.

Mange brugere har svært ved at huske argumenterne og flagene i sed-kommandoen, da der er mange af dem, der er tilgængelige til brug. At vide, hvordan man får kommandolinjemanualer til enhver Linux-kommando, hjælper dig med at komme ud af sådanne situationer let.

E-mail
7 måder at få kommandolinjehjælp på Linux

Alle de vigtige kommandoer til at lære om Linux-kommandoer fra kommandolinjen

Læs Næste

Relaterede emner
  • Linux
  • Teksteditor
  • Terminal
  • Kommandoprompt
Om forfatteren
Deepesh Sharma (36 artikler offentliggjort)

Deepesh er Junior Editor til Linux på MUO. Han har skrevet informativt indhold på internettet i over 3 år. I sin fritid nyder han at skrive, lytte til musik og spille sin guitar.

Mere fra Deepesh Sharma

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.