Att redigera textfiler och terminalutdata är ett vardagligt jobb för dem som administrerar Linux-maskiner. Kommandoradsverktyg som sed tillåter en användare att ändra och ändra innehållet i en textfil direkt från terminalfönstret.

I den här artikeln kommer vi att diskutera sed-kommandot i detalj, tillsammans med några viktiga exempel som visar kraften i sed-verktyget i Linux.

Vad är sedkommandot?

Sed-kommandot, som är en förkortning för Stream Editor, är ett kommandoradsverktyg som tillåter Linux-användare att utföra textbaserade operationer på filer och terminalutgångar. Med hjälp av sed kan användare hitta och ersätta specifika ord i en text, visa en viss del av utdata och redigera textfiler utan att öppna dem.

De tre grundläggande operationerna som stöds av sed-kommandot är:

  1. Införande
  2. Radering
  3. Substitution (Hitta och ersätt)

Avancerade användare kan också implementera reguljära uttryck med sed-kommandot för att redigera textströmmar mer effektivt.

Den grundläggande syntaxen för kommandot är:

instagram viewer
sed [optioner] [mönster] [filpath]

...var alternativ är de olika funktionerna i kommandot, mönster är det reguljära uttrycket eller skriptet som du vill matcha, och sökväg är sökvägen till textfilen som innehåller texten.

10 exempel på Linux sed-kommandot

Om du planerar att bli en vanlig Linux-användare kan det vara användbart för dig att veta hur du redigerar filer, söka och ersätta specifika ord och filtrera terminalutgången. Detta avsnitt täcker några exempel på kommandot sed som definitivt kommer att göra dig till en Linux-kraftanvändare.

Vi kommer att använda följande textfil för demonstration i inlägget.

Detta är en demo-textfil.
Det är en fantastisk fil som hjälper oss alla.
Sed-kommandot är också utmärkt för strömredigering.
Vill du lära dig hur du använder kommandot?
Det här är en annan rad i filen.
Detta är den tredje allmänna raden i filen.
Den här filen heter som textfil.
Det här är ett äpple.
Det här är en apelsin.

1. Visa en rad linjer

Linux-kommandon som huvud och svans matar ut de första eller sista tio raderna i en textfil. Men vad händer om du vill få innehållet mellan två specifika rader i en fil? I sådana situationer kan kommandot sed komma till nytta.

För att mata ut innehållet mellan rad 3 och 5 i filen textfile.txt:

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

De -n flagg hindrar sed från att visa mönsterutrymmet i slutet av varje cykel. Du kan också använda --tyst och --tyst alternativ istället för -n. De sid argument står för skriva ut och används för att visa matchade rader för användaren.

Utförande av ovan nämnda kommando på exempelfilen ger följande utdata.

Sed-kommandot är också utmärkt för strömredigering.
Vill du lära dig hur du använder kommandot?
Det här är en annan rad i filen.

För att mata ut hela filinnehållet förutom det angivna intervallet, använd d flagga istället för sid i kommandot:

sed '3,5d' textfile.txt

De d flaggan raderar de matchade strängarna från utdata och visar resten av innehållet.

Detta är en demo-textfil.
Det är en fantastisk fil som hjälper oss alla.
Detta är den tredje allmänna raden i filen.
Den här filen heter som textfil.
Det här är ett äpple.
Det här är en apelsin.

2. Visa linjer som inte följer

Så här skriver du ut rader som inte följer mellan flera intervall i filen:

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

Produktion:

Detta är en demo-textfil.
Det är en fantastisk fil som hjälper oss alla.
Det här är en annan rad i filen.
Detta är den tredje allmänna raden i filen.

De -e flaggan hjälper till utförande flera åtgärder med ett enda kommando.

3. Infoga mellanslag mellan linjer

Om du av någon anledning vill infoga tomma rader mellan varje rad i en textfil, använd G argument med standard sed-kommandot.

sed G textfil.txt

För att infoga flera tomma rader i utgången, skicka flera G argument åtskilda av semikolon (;) karaktär.

sed 'G; G 'textfile.txt

4. Byt ut ett ord i en textfil

Om du vill ersätta varje förekomst av ett specifikt ord med något annat ord, använd s och g argument med kommandot. Den grundläggande syntaxen för att ersätta ord med kommandot sed är:

sed s / originalword / replaceword / g filnamn

Med ovanstående syntax kan du ersätta ordet Fantastisk med super i filen textfile.txt:

sed s / fantastisk / super / g textfil.txt

De s argument betecknar utbyte och den g kommandot används för att ersätta det matchade innehållet med det angivna ersättningsinnehållet.

För att ersätta den andra förekomsten av ordet med sed, skicka ett nummer till g argument. I detta fall:

sed s / fantastisk / super / g2 textfil.txt

Om du vill ignorera teckenfall när du ersätter ord, använd gi istället för g, var i står för strunta i fall.

sed s / Amazing / super / gi textfile.txt

Relaterad: Använder vi? Så här öppnar du en fil och sedan sparar och avslutar

5. Ersätt ord inom ett område

Du kan också ersätta ord inom ett visst intervall.

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

6. Utför flera byten samtidigt

Om du vill utföra två eller flera byten samtidigt, separera bara kommandona med semikolon (;) karaktär.

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

Systemet visar följande utdata.

Detta är en demo-textfil.
Det är en superfil som hjälper oss alla.
Sed-verktyget är också bra för strömredigering.
Vill du lära dig hur du använder verktyget?
Det här är en annan rad i filen.
Detta är den tredje allmänna raden i filen.
Den här filen heter som textfil.
Det här är ett äpple.
Det här är en apelsin.

7. Ersätt endast ord om en matchning hittas

Du kan också använda kommandot sed för att ersätta ett ord endast om en viss matchning finns i raden. Till exempel för att ersätta ordet a med ett om ordet orange är närvarande i raden:

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

Att utfärda ovan nämnda kommando kommer att matas ut:

Detta är en demo-textfil.
Det är en superfil som hjälper oss alla.
Sed-verktyget är också bra för strömredigering.
Vill du lära dig hur du använder verktyget?
Det här är en annan rad i filen.
Detta är den tredje allmänna raden i filen.
Den här filen heter som textfil.
Det här är ett äpple.
Det här är en apelsin.

Observera att ordet i raden Det här är ett äpple ersattes inte eftersom systemet inte hittade ordet orange i det.

8. Ersätt ord med reguljära uttryck

För dem som vet hur man använder reguljära uttryck blir det mycket enklare att utföra operationer på strängar med hjälp av kommandot sed. Du kan implementera reguljära uttryck för att förbättra kommandot.

För att ersätta alla förekomster av ordet Fantastisk eller Fantastisk med super:

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

På samma sätt kan du också använda avancerade reguljära uttryck för att utföra specifika operationer med kommandot sed.

9. Rör sed med andra kommandon

Du kan också kedja sed med andra Linux-kommandon. Till exempel kan du pipa lspci kommando med sed för att lägga till tomma mellanslag mellan raderna i utdata.

lspci | sed G

För att ersätta specifika ord i utdata från IP-ruttvisning kommando:

IP-ruttvisning | sed s / src / källa / g

Det ovannämnda kommandot ersätter ordet källa i stället för det ursprungliga ordet src.

Relaterad: Hur man använder Find Command för att söka efter filer i Linux

10. Redigera och säkerhetskopiera originalfilen

När du arbetar med systemfiler är det viktigt att säkerhetskopiera originalfilen medan du gör ändringar. Detta hjälper dig att återställa ändringarna om något går sönder.

För att säkerhetskopiera originalfilen med sed, använd -i flagga i kommandot.

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

En ny fil skapas med namnet textfile.txt.backup. Du kan kontrollera att de två filerna är olika med hjälp av diff kommando.

diff textfile.txt textfile.txt.backup

Redigera strängar i Linux med sed

Ibland, medan du arbetar med textfiler på terminalen, blir formatering och redigering av utdata för bättre läsbarhet ett måste. Sed och awk är kommandoradsverktyg i Linux som gör det möjligt för en användare att arbeta effektivt med textfiler genom att dela in data i separata rader.

Många användare har svårt att memorera argumenten och flaggorna i kommandot sed eftersom det finns många som är tillgängliga att använda. Att veta hur man får kommandoradshandböcker för alla Linux-kommandon hjälper dig att enkelt komma ur sådana situationer.

E-post
7 sätt att få kommandoradshjälp på Linux

Alla viktiga kommandon för att lära dig mer om Linux-kommandon från kommandoraden

Läs Nästa

Relaterade ämnen
  • Linux
  • Textredigerare
  • Terminal
  • Kommandotolken
Om författaren
Deepesh Sharma (36 artiklar publicerade)

Deepesh är Junior Editor för Linux på MUO. Han har skrivit informationsinnehåll på internet i över 3 år. På fritiden tycker han om att skriva, lyssna på musik och spela sin gitarr.

Mer från Deepesh Sharma

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.