Skillnad mellan sed och awk

De huvudskillnad mellan sed och awk är det sed är ett kommandovärde som fungerar med strömmar av tecken för sökning, filtrering och textbehandling under awk mer kraftfull och robust än sed med sofistikerade programmeringskonstruktioner som om / annars, medan, gör / stund etc.

Ett operativsystem fungerar som gränssnitt mellan användar- och hårdvaruenheter. Datorn kan inte utföra någon uppgift utan ett operativsystem. Det finns många operativsystem och UNIX är en av dem. Det är ett stabilt operativsystem som stöder flerbrukarmiljöer. Linux är ett annat populärt operativsystem baserat på UNIX. Både UNIX och Linux erbjuder kraftfulla kommandoradsgränssnitt (CLI). Användarna kan ange kommandona till CLI för att utföra olika uppgifter. Det finns ett stort antal kommandon, och sed och awk är två av dem. Dessa kommandon hjälper till att filtrera och ändra text.

Viktiga områden som omfattas

1. Vad är sed
     - Definition, exempel
2. Vad är awk
    - Definition, exempel
3. Vad är skillnaden mellan sed och awk
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

sed, awk, operativsystem

Vad är sed

Kommandot sed tillåter modifiering och filtrering av textfiler.

Figur 1: CLI för att ge kommandon i Linux och UNIX

sed '1,3 d' test1.txt

Ovanstående kommando kommer att visa raderna efter rad 3. Den kommer inte att visa 1, 2, 3 rader i test1.txt.

sed 's / abc / cab /' test1.txt

Kommandot ovan kommer att ersätta hytt istället för abc i test1.txt-filen.

sed 's / one / 1 /' test1.txt

Kommandot ovan kommer att ersätta 1 istället för en i filen test1.txt.

sed '1,2! d 'test1.txt

Detta visar bara linje 1 och linje 2.

Det är få exempel på sed. Sammantaget tillåter sed att användarna kan filtrera och söka.

Vad är awk

Kommandot awk tillåter att söka data i en fil och skriva ut data på konsolen. Om en fil innehåller flera kolumner, är det också möjligt att hitta data i specifika kolumner. Dessutom hjälper det till uppgifter som sökning, villkorligt utförande, uppdatering och filtrering.

awk 'print' file1.txt

Ovanstående kommando kommer att visa allt innehåll i filen1.txt.  

Antag att filen file1.txt innehåller flera kolumner.

awk 'skriv ut $ 1' file1.txt

Detta kommando skriver ut den första kolumnen i filen1.txt. Som standard betraktar awk-kommandot ett vitt utrymme som separator.

awk 'print $ 1 "" $ 3' file1.txt

Ovanstående kommando skriver ut den första och tredje kolumnen i filen1.txt med ett mellanslag mellan.

awk 'skriv ut $ 1. $ 3 'file1.txt

Ovanstående kommando kommer att skriva sammanhopningen av första och tredje kolumnen.

awk '/ example / print' file1.txt

Ovanstående kommando skriver ut alla rader i filen file1.txt som innehåller ordet exemplet.

awk '/ [0-9] / print' file1.txt

Ovanstående kommando skriver ut alla rader i filen file1.txt som innehåller siffror från 0 till 9.

awk '/ ^ [0-9] / print' file1.txt

Detta kommer att skriva ut linjerna i file1.txt som börjar med ett nummer.

awk '/ [0-9] $ / print' file1.txt

Detta kommer att skriva ut linjerna i file1.txt som slutar med ett nummer.

Det är också möjligt att kontrollera tillståndsbetingelser enligt följande.

awk 'if ($ 1 ~ / 123 /) print' file1.txt

Detta kommer att skriva ut linjen om innehållet börjar med 123.

awk 'if ($ 2 ~ / [0-9] /) print' file1.txt

Detta kommer att skriva ut linjerna i kolumn två som börjar med ett nummer.

Det är några exempel på awk.

Totalt sett är awk ett kraftfullt kommando för att bearbeta och analysera textfiler.

Skillnad mellan sed och awk

Definition

Sed är ett kommandoradsverktyg som tolkar och förvandlar text, med ett enkelt, kompakt programmeringsspråk. Den awk är ett kommandoradsverktyg som är utformat för textbehandling som gör det möjligt att skriva effektiva program i form av uttalanden.

Funktionalitet

Både sed och awk tillåter bearbetningsströmmar av tecken för uppgifter som textomvandling. Vakan är kraftfullare och starkare än sed. Det liknar ett programmeringsspråk.

Komplexitet

Sed är enkel och begränsad medan awk är mer komplex och mångsidig.

Slutsats

Skillnaden mellan sed och awk är att sed är ett kommandofunktion som fungerar med teckenflöden för sökning, filtrering och textbehandling medan awk är kraftfullare och robustare än sed med sofistikerade programmeringskonstruktioner som om / annars, medan, gör / medan etc.

Referens:

1. AWK-kommando: Session 1: Välj kolumndata, testvärld, 8 februari 2017, tillgänglig här.
2. Använda Linux AWK Utility, Frank Programmerare, 25 juni 2011, Tillgänglig här.
3. Linux / Unix-handledning || SED-kommandon i Linux av Shiva, Durga Software Solutions, 30 oktober 2016, Tillgänglig här.

Image Courtesy:

1. "Först på Xubuntu 11.04" Av Kris Kendall, Jesse Kornblum och Nick Mikus - Skärmdump av -h-utgången av främsta (Public Domain) via Commons Wikimedia