logo

Sed Command i Linux/Unix med eksempler

SED-kommando i UNIX står for stream editor, og den kan udføre mange funktioner på filen som at søge, finde og erstatte, indsætte eller slette. Selvom den mest almindelige brug af SED-kommando i UNIX er til substitution eller til at finde og erstatte. Ved at bruge SED kan du redigere filer selv uden at åbne dem, hvilket er meget hurtigere måde at finde og erstatte noget i filen på, end først at åbne den fil i VI Editor og derefter ændre den.

  • SED er en kraftfuld tekststream-editor. Kan indsætte, slette, søge og erstatte (substitution).
  • SED-kommando i unix understøtter regulært udtryk, som gør det muligt at udføre kompleks mønstermatchning.

Syntaks:



 sed OPTIONS... [SCRIPT] [INPUTFILE...]>

Eksempel:
Betragt nedenstående tekstfil som input.

 $cat>geekfile.txt>
 unix is great os. unix is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>

Eksempel på kommandoer

    Erstatning eller erstatning af streng: Sed-kommandoen bruges mest til at erstatte teksten i en fil. Nedenstående simple sed-kommando erstatter ordet unix med linux i filen.
     $sed 's/unix/linux/' geekfile.txt>

    Output:



     linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>

    Her angiver s'en substitutionsoperationen. / er afgrænsninger. Unix er søgemønsteret og linux er erstatningsstrengen.

    Som standard erstatter sed-kommandoen den første forekomst af mønsteret i hver linje, og den erstatter ikke den anden, tredje ... forekomst i linjen. Udskiftning af den n'te forekomst af et mønster i en linje: Brug flagene /1, /2 osv. til at erstatte den første, anden forekomst af et mønster i en linje. Kommandoen nedenfor erstatter den anden forekomst af ordet unix med linux på en linje.

     $sed 's/unix/linux/2' geekfile.txt>

    Produktion:



     unix is great os. linux is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.linux is a multiuser os.Learn unix .unix is a powerful.>
    Erstatning af al forekomst af mønsteret i en linje : Erstatningsflaget /g (global erstatning) angiver sed-kommandoen til at erstatte alle forekomster af strengen i linjen.
     $sed 's/unix/linux/g' geekfile.txt>

    Output:

     linux is great os. linux is opensource. linux is free os. learn operating system. linux linux which one you choose. linux is easy to learn.linux is a multiuser os.Learn linux .linux is a powerful.>
    Erstatning fra n'te forekomst til alle forekomster i en linje : Brug kombinationen af ​​/1, /2 osv. og /g til at erstatte alle mønstrene fra den n'te forekomst af et mønster i en linje. Den følgende sed-kommando erstatter det tredje, fjerde, femte... unix-ord med linux-ord på en linje.
     $sed 's/unix/linux/3g' geekfile.txt>

    Produktion:

     unix is great os. unix is opensource. linux is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn linux .linux is a powerful.>
    Sæt første tegn i parentes i hvert ord : Dette sed-eksempel udskriver det første tegn i hvert ord i parentes.
     $ echo 'Welcome To The Geek Stuff' | sed 's/([A-Z])/(1)/g'>

    Produktion:

    Madhuri sagde kom nu
     (W)elcome (T)o (T)he (G)eek (S)tuff>
    Udskiftning af streng på et bestemt linjenummer: Du kan begrænse sed-kommandoen til at erstatte strengen på et bestemt linjenummer. Et eksempel er
     $sed '3 s/unix/linux/' geekfile.txt>

    Produktion:

     unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>

    Ovenstående sed-kommando erstatter kun strengen på den tredje linje. Duplikere den erstattede linje med /p flag: /p print flaget udskriver den erstattede linje to gange på terminalen. Hvis en linje ikke har søgemønsteret og ikke erstattes, udskriver /p kun denne linje én gang.

     $sed 's/unix/linux/p' geekfile.txt>

    Produktion:

     linux is great os. unix is opensource. unix is free os. linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
    Udskrivning af kun de erstattede linjer: Brug muligheden -n sammen med /p print-flaget for kun at vise de erstattede linjer. Her undertrykker indstillingen -n de duplikerede rækker genereret af /p-flaget og udskriver de erstattede linjer kun én gang.
     $sed -n 's/unix/linux/p' geekfile.txt>

    Produktion:

     linux is great os. unix is opensource. unix is free os. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>

    Hvis du bruger -n alene uden /p, så udskriver sed ikke noget. Erstatning af streng på en række linjer : Du kan angive en række linjenumre til sed-kommandoen til at erstatte en streng.

     $sed '1,3 s/unix/linux/' geekfile.txt>

    Produktion:

     linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>

    Her erstatter sed-kommandoen linjerne med rækkevidde fra 1 til 3. Et andet eksempel er

     $sed '2,$ s/unix/linux/' geekfile.txt>

    Produktion:

     unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful>

    Her angiver $ den sidste linje i filen. Så sed-kommandoen erstatter teksten fra anden linje til sidste linje i filen. Sletning af linjer fra en bestemt fil : SED-kommandoen kan også bruges til at slette linjer fra en bestemt fil. SED-kommandoen bruges til at udføre sletningsoperation uden selv at åbne filen
    Eksempler:
    1. For at slette en bestemt linje skal du sige n i dette eksempel

     Syntax: $ sed 'nd' filename.txt Example: $ sed '5d' filename.txt>

    2. For at slette en sidste linje

     Syntax: $ sed '$d' filename.txt>

    3. For at slette linje fra område x til y

     Syntax: $ sed 'x,yd' filename.txt Example: $ sed '3,6d' filename.txt>

    4. For at slette fra n. til sidste linje

     Syntax: $ sed 'nth,$d' filename.txt Example: $ sed '12,$d' filename.txt>

    5. For at slette mønstermatchende linje

     Syntax: $ sed '/pattern/d' filename.txt Example: $ sed '/abc/d' filename.txt>


SED-kommando i Linux | Sæt 2