▷ Hur man använder SED -kommandot i Linux - EXEMPEL

Linux är ett system fullt av kommandon där var och en spelar en viktig roll i beteendet för vissa uppgif.webpter, oavsett om de är användar-, objekt- eller supporthantering, varje kommando har sitt deltagande i Linux och ett av dessa kommandon är Sed som vi kommer att prata om på Solvetic i detaljer.

Vad är sed -kommandot i LinuxSed -kommandot är bokstavligen en flödesredigerare som vi kan använda för att modifiera texten med grundläggande funktioner i ett inmatningsflöde antingen från en fil eller om det är möjligt från en pipeline.

Till skillnad från andra textredigerare är det med sed möjligt att filtrera text i en pipeline när vi går över det valda innehållet.

FördelFördelarna med att använda sed på Linux är:

  • Vi kan välja text
  • Vi kan ersätta text
  • Lägg till rader i texten
  • Vi kan ta bort rader från texten
  • Låter dig ändra eller bevara en originalfil

Den allmänna syntaxen för att använda sed är följande:

 sed ALTERNATIV… [SCRIPT] [INPUT_FILE…]
Vi kommer att lära oss några sätt att använda det här kommandot på Linux.

1. Hur man använder SED -kommandot i Linux

Grundläggande användning av sedI det här exemplet kommer vi att använda "echo" för att se hur sed -kommandot kan ersätta en del av den inmatade texten, vi anger:

 echo solvitic | sed 's / vitic / vetic /'
I det här fallet säger vi till sed att ersätta ordet "vitic" med "vetic", när du trycker på Enter blir detta resultatet:

FÖRSTORA

Vi ser att förändringen sker automatiskt.

2. Markera text med SED Linux -kommandot

Steg 1
I det här fallet kommer vi att ha en textfil som finns på skrivbordet:

FÖRSTORA

Nu kommer vi att använda följande rad:

 mindre Solvetic.txt
Steg 2
När du trycker på Enter kommer detta att bli resultatet:

FÖRSTORA

Med sed är det möjligt att välja några rader i filen, för detta måste vi ange de första och sista raderna i intervallet för att välja, till exempel om vi vill extrahera rader två till sju vi kör:

 sed -n '2,7p' Solvetic.txt
Steg 3
Vi kommer att se följande:

FÖRSTORA

Vi måste komma ihåg kommatecken i de områden som ska tilldelas (2,7), parametern p indikerar att det betyder "skriva ut matchande rader", med detta kommer sed -kommandot att skriva ut alla rader inom det intervallet och -n (tyst ) alternativet tar hand om att inte visa text som inte matchar det intervallet.

Steg 4
Vi kan använda parametern -e (uttryck) för att göra flera val, till exempel:

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

FÖRSTORA

Steg 5
Med sed är det möjligt att välja startlinjen, sedan anger vi vilken som ska korsas i filen och för att skriva ut de alternativa raderna, till exempel anger vi:

 sed -n '1 ~ 3p' Solvetic.txt
I det här fallet hänvisar det första numret till startlinjen och det andra talet anger sed vilka rader efter startlinjen som ska visas:

FÖRSTORA

Steg 6
En annan användning av sed är möjligheten att välja rader där de matchande textmönstren finns, detta om vi inte vet varifrån radenumret kommer kan vi utföra följande:

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

FÖRSTORA

Vi kommer att se linjerna som börjar med den termen.

3. Hur man skapar ersättningar med SED Linux

Steg 1
I den grundläggande delen såg vi hur man byter ut text med sed, där använde vi parametern -s (substitution). Sedan anger den första strängen sökmönstret och den andra hänvisar till texten som den kommer att ersättas med.

 sed -n 's / tasks / actions / p' Solvetic.txt 
I det här exemplet ersätter vi "uppgif.webpter" med "åtgärder":

FÖRSTORA

Steg 2
Med parametern p sed stannar den automatiskt efter den första matchen, för att utföra en global sökning och göra ändringen i allmänhet måste vi lägga till "g":

 sed -n 's / tasks / actions / gp' Solvetic.txt
Om vi ​​vill att det ska vara skiftlägeskänsligt lägger vi till "i":
 sed -n 's / tasks / actions / gpi' Solvetic.txt
Steg 3
Det är möjligt att skapa begränsningar för ersättningar endast för vissa delar av filen, först listar vi raderna som ska analyseras:
 sed -n '1,3p' Solvetic.txt

FÖRSTORA

Steg 4
Låt oss se följande, vi kan hitta var det finns två mellanslag och ersätta dem med ett:

 sed -n '1.3 s / * / / gp' Solvetic.txt
Asterisken (*) representerar noll eller mer av det tidigare valda tecknet.

Steg 5
Du kan minska sökmönstret till ett enda utrymme med följande kommando:

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

FÖRSTORA

I det senare fallet matchar asterisken noll eller mer av det tidigare tecknet, detta får varje icke-mellanslagstecken att se ut som ett "nollutrymme" genom att använda kommandot.

Steg 6
För att göra två eller flera byten samtidigt utför vi:

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

FÖRSTORA

4. Alternativ för SED -ersättning på Linux


Vi kan också använda sed för att extrahera filnamn från systemet, i det här fallet måste vi komma ihåg att varje objekt måste matcha ett sökmönster (subuttryck) som kan numreras (upp till högst nio element).

Steg 1
Dessa nummer kan sedan användas för att referera till specifika underuttryck.
Överuttrycket måste vara inneslutet inom parentes [()] och parenteserna måste föregås av ett snedstreck (\) så att de inte upptäcks som ett normalt tecken, till exempel:

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

FÖRSTORA

De variabler som används i detta kommando är

  • sed 's /: anger sed -kommandot och början på ersättningsuttrycket.
  • \ (: bifoga subexpressionen, föregående av ett snedstreck
  • [^:] *: är den första superexpressionen av söktermen som innehåller en grupp mellan parenteser. Huvudtecknet (^) betyder "nej" när det används i en grupp, det vill säga alla tecken som inte är ett kolon
  • \): Den avslutande parentesen [)] med ett snedstreck
  • . *: är den andra subexpressionen i sökningen som anger "vilket tecken som helst och ett antal av dessa".
  • / \ 1: är ersättningsdelen av uttrycket som innehåller ett tal 1 som föregås av ett snedstreck (\) och indikerar att texten matchar det första subexpressionen
  • / ': avsluta sed -kommandot

Steg 2
Med föregående kommando har vi sökt efter en teckensträng som inte innehåller ett kolon, eftersom varje rad i filen / etc / passwd börjar med användarnamnet som slutar med ett kolon. Vi kan ersätta det värdet genom att isolera användarnamnet med följande kommando:

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

FÖRSTORA

Steg 3
Vi kan bara visa användarnamnen med följande kommando:

 sed 's /:.*// "/ etc/ passwd
Ett annat alternativ med sed är att använda parametern c (cut - cut) för att ersätta text i en fil, till exempel:
 sed ' / Linux / c Linux operativsystem' Solvetic.txt

FÖRSTORA

5. Infoga rader och text med SED i Linux

Steg 1
En annan uppgif.webpt att använda med sed är att infoga nya rader och text i en fil, i det här fallet har vi följande data:

FÖRSTORA

Steg 2
Vi kan infoga en ny rad som anger nedanför vilken den ska infogas:

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

FÖRSTORA

Steg 3
Det är också möjligt att använda kommandot Infoga (i) för att infoga en ny rad ovanför matchningen:

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

FÖRSTORA

Steg 4
Vi kan använda ampersand -tecknet (&) för att lägga till ny text till en matchande rad i filen, kör vi:

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

FÖRSTORA

6. Hur man tar bort en rad med SED Linux


I det här fallet måste vi använda parametern d (ta bort), för att ta bort till exempel den andra raden vi kör:
 sed '2d' Solvetic.txt

FÖRSTORA

Vi kan ta bort ett intervall om det behövs:

 sed '1,4d' Solvetic.txt
För att ta bort linjer utanför ett intervall måste vi använda ett utropstecken (!) Så här följer:
 sed '2,4! d' Solvetic.txt

7. Hur man sparar ändringar med SED i Linux

Steg 1
För att tillämpa de gjorda ändringarna är det möjligt att använda alternativet På plats (-i) för att sed ska kunna skriva ändringarna till den ursprungliga filen, men för ökad säkerhet kan vi lägga till en backup-tillägg enligt följande (vi har säkerhetskopierat raderna som innehåller ordet Wi):

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt
Vi listar innehållet:
 katt Solvetic.txt.bak

FÖRSTORA

Steg 2
Det är möjligt att omdirigera utdata till en ny fil med samma resultat:

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

FÖRSTORA

Med sed kan vi arbeta med filerna på ett helt komplett sätt i Linux eftersom vi har sett alla användningsalternativ.

wave wave wave wave wave