logo

Sed Command in Linux/Unix met voorbeelden

SED-opdracht in UNIX staat voor stream-editor en kan veel functies in bestanden uitvoeren, zoals zoeken, zoeken en vervangen, invoegen of verwijderen. Hoewel het meest voorkomende gebruik van de SED-opdracht in UNIX bedoeld is voor vervanging of voor zoeken en vervangen. Door SED te gebruiken, kunt u bestanden zelfs bewerken zonder ze te openen, wat een veel snellere manier is om iets in een bestand te vinden en te vervangen dan eerst dat bestand in VI Editor te openen en het vervolgens te wijzigen.

  • SED is een krachtige tekststroomeditor. Kan invoegen, verwijderen, zoeken en vervangen (vervanging).
  • SED-opdracht in Unix ondersteunt reguliere expressie waardoor complexe patroonmatching kan worden uitgevoerd.

Syntaxis:

converteer tekenreeks naar json java
 sed OPTIONS... [SCRIPT] [INPUTFILE...]>

Voorbeeld:
Beschouw het onderstaande tekstbestand als invoer.



 $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.>

Voorbeeldopdrachten

    Tekenreeks vervangen of vervangen: De opdracht Sed wordt meestal gebruikt om de tekst in een bestand te vervangen. De onderstaande eenvoudige sed-opdracht vervangt het woord unix door linux in het bestand.
     $sed 's/unix/linux/' geekfile.txt>

    Uitgang:

     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.>

    Hier specificeert de s de vervangingsbewerking. De / zijn scheidingstekens. Unix is ​​het zoekpatroon en Linux is de vervangende string.

    Standaard vervangt het sed-commando de eerste keer dat het patroon voorkomt in elke regel, en niet het tweede, derde... exemplaar in de regel. Het vervangen van de zoveelste keer dat een patroon op een regel voorkomt: Gebruik de vlaggen /1, /2 enz. om het eerste en tweede exemplaar van een patroon op een regel te vervangen. Het onderstaande commando vervangt de tweede keer dat het woord unix voorkomt door linux op een regel.

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

    Uitgang:

     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.>
    Alle exemplaren van het patroon in een regel vervangen: De vervangende vlag /g (algemene vervanging) specificeert de opdracht sed om alle exemplaren van de string in de regel te vervangen.
     $sed 's/unix/linux/g' geekfile.txt>

    Uitgang:

     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.>
    Vervangen van n-de voorkomen naar alle voorkomens in een regel: Gebruik de combinatie van /1, /2 enz. en /g om alle patronen van het n-de voorkomen van een patroon in een regel te vervangen. Het volgende sed-commando vervangt het derde, vierde, vijfde… unix-woord door een linux-woord op een regel.
     $sed 's/unix/linux/3g' geekfile.txt>

    Uitgang:

     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.>
    Eerste teken tussen haakjes van elk woord: in dit sed-voorbeeld wordt het eerste teken van elk woord tussen haakjes afgedrukt.
     $ echo 'Welcome To The Geek Stuff' | sed 's/([A-Z])/(1)/g'>

    Uitgang:

    redden van
     (W)elcome (T)o (T)he (G)eek (S)tuff>
    Tekenreeks op een specifiek regelnummer vervangen: u kunt de opdracht sed beperken tot het vervangen van de tekenreeks op een specifiek regelnummer. Een voorbeeld is
     $sed '3 s/unix/linux/' geekfile.txt>

    Uitgang:

     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.>

    Het bovenstaande sed-commando vervangt de string alleen op de derde regel. De vervangen regel dupliceren met /p vlag: De /p print vlag drukt de vervangen regel twee keer af op de terminal. Als een regel het zoekpatroon niet heeft en niet wordt vervangen, drukt de /p die regel slechts één keer af.

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

    Uitgang:

     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.>
    Alleen de vervangen regels afdrukken: Gebruik de optie -n samen met de vlag /p print om alleen de vervangen regels weer te geven. Hier onderdrukt de optie -n de dubbele rijen die door de vlag /p worden gegenereerd en worden de vervangen regels slechts één keer afgedrukt.
     $sed -n 's/unix/linux/p' geekfile.txt>

    Uitgang:

     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.>

    Als je alleen -n gebruikt zonder /p, drukt de sed niets af. Tekenreeks vervangen op een reeks regels: u kunt een reeks regelnummers opgeven voor de opdracht sed voor het vervangen van een tekenreeks.

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

    Uitgang:

    verschil tussen liefde en like
     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.>

    Hier vervangt het sed-commando de regels met een bereik van 1 tot 3. Een ander voorbeeld is

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

    Uitgang:

     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>

    Hier geeft $ de laatste regel in het bestand aan. Het sed-commando vervangt dus de tekst van de tweede regel naar de laatste regel in het bestand. Regels uit een bepaald bestand verwijderen: De SED-opdracht kan ook worden gebruikt voor het verwijderen van regels uit een bepaald bestand. De SED-opdracht wordt gebruikt voor het uitvoeren van een verwijderingsbewerking zonder het bestand zelfs maar te openen
    Voorbeelden:
    1. Om een ​​bepaalde regel te verwijderen, zegt u in dit voorbeeld n

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

    2. Een laatste regel verwijderen

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

    3. Om lijn te verwijderen uit bereik x tot y

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

    4. Om te verwijderen van de zoveelste tot de laatste regel

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

    5. Patroonovereenkomstlijn verwijderen

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


SED-opdracht in Linux | Stel 2 in