Verschil tussen sed en awk

De grootste verschil tussen sed en awk is dat sed is een opdrachthulpprogramma dat werkt met tekststromen voor zoeken, filteren en tekstverwerking awk krachtiger en robuuster dan sed met geavanceerde programmeerconstructies zoals if / else, while, do / while enz.

Een besturingssysteem werkt als de interface tussen de gebruiker en hardwareapparaten. De computer kan geen taken uitvoeren zonder besturingssysteem. Er zijn veel besturingssystemen en UNIX is er een van. Het is een stabiel besturingssysteem dat een omgeving voor meerdere gebruikers ondersteunt. Linux is een ander populair besturingssysteem gebaseerd op UNIX. Zowel UNIX als Linux bieden een krachtige opdrachtregelinterface (CLI). De gebruikers kunnen de opdrachten invoeren in de CLI om verschillende taken uit te voeren. Er is een groot aantal commando's, en sed en awk zijn twee van hen. Deze opdrachten helpen bij het filteren en de teksttransformatie.

Key Areas Covered

1. Wat is sed
     - Definitie, voorbeelden
2. Wat is awk
    - Definitie, voorbeelden
3. Wat is het verschil tussen sed en awk
     - Vergelijking van belangrijke verschillen

Sleutelbegrippen

sed, awk, Besturingssysteem

Wat is sed

Het bevel sed staat het wijzigen en filteren van tekstbestanden toe.

Figuur 1: CLI voor opdrachten in Linux en UNIX

sed '1,3 d' test1.txt

De opdracht hierboven geeft de regels weer na regel 3. Er worden geen 1, 2, 3 regels van test1.txt weergegeven.

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

Het bovenstaande commando vervangt de taxi in plaats van abc in het bestand test1.txt.

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

De bovenstaande opdracht vervangt 1 in plaats van één in het bestand test1.txt.

sed '1,2! d 'test1.txt

Dit geeft alleen regel 1 en regel 2 weer.

Dat zijn enkele voorbeelden voor sed. Over het algemeen stelt sed gebruikers in staat om te filteren en te zoeken.

Wat is awk

Het bevel awk staat het zoeken van gegevens in een bestand toe en het afdrukken van gegevens op de console. Als een bestand meerdere kolommen bevat, is het ook mogelijk om gegevens in specifieke kolommen te vinden. Bovendien helpt het taken zoals zoeken, voorwaardelijke uitvoering, bijwerken en filteren.

awk 'print' file1.txt

Met de opdracht hierboven wordt alle inhoud in file1.txt weergegeven.  

Stel dat het bestand bestand1.txt meerdere kolommen bevat.

awk 'print $ 1' file1.txt

Met deze opdracht wordt de eerste kolom van bestand1.txt afgedrukt. Standaard beschouwt de opdracht awk een witruimte als het scheidingsteken.

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

Met de opdracht hierboven worden de eerste en de derde kolom van het bestand1.txt afgedrukt met een spatie ertussen.

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

Met de opdracht hierboven wordt de aaneenschakeling van de eerste en de derde kolom afgedrukt.

awk '/ example / print' file1.txt

Met de opdracht hierboven worden alle regels in het bestand file1.txt afgedrukt die het woord example bevatten.

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

Met de opdracht hierboven worden alle regels in het bestand file1.txt afgedrukt die getallen bevatten van 0 tot 9.

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

Hiermee worden de regels in file1.txt afgedrukt die beginnen met een nummer.

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

Hiermee worden de regels in file1.txt afgedrukt die eindigen met een nummer.

Het is ook mogelijk om de conditionals als volgt te controleren.

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

Hiermee wordt de regel afgedrukt als de inhoud begint met 123.

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

Hiermee worden de lijnen in kolom twee afgedrukt die beginnen met een nummer.

Dat zijn enkele voorbeelden van awk.

Over het algemeen is awk een krachtige opdracht voor het verwerken en analyseren van tekstbestanden.

Verschil tussen sed en awk

Definitie

De sed is een opdrachtregelhulpprogramma dat tekst parseert en transformeert met behulp van een eenvoudige, compacte programmeertaal. De awk is een opdrachtregelhulpprogramma ontworpen voor tekstverwerking waarmee effectieve programma's kunnen worden geschreven in de vorm van instructies.

functionaliteit

Zowel sed en awk maken verwerking van streams van karakters mogelijk voor taken zoals teksttransformatie. De awk is krachtiger en robuuster dan sed. Het lijkt op een programmeertaal.

ingewikkeldheid

De sed is eenvoudig en beperkt, terwijl awk complexer en veelzijdiger is.

Conclusie

Het verschil tussen sed en awk is dat sed een opdrachthulpprogramma is dat werkt met streams van tekens voor zoeken, filteren en tekstverwerking terwijl awk krachtiger en robuuster is dan sed met geavanceerde programmeerconstructies zoals if / else, while, do / while enz..

Referentie:

1. AWK-opdracht: Sessie 1: Kolomgegevens selecteren, Wereld testen, 8 feb. 2017, hier beschikbaar.
2. Gebruik van Linux AWK Utility, Frank the Programmer, 25 juni 2011, hier beschikbaar.
3. Linux / Unix-handleiding || SED-opdrachten in Linux door Shiva, Durga Software Solutions, 30 oktober 2016, hier beschikbaar.

Afbeelding met dank aan:

1. "Foremost on Xubuntu 11.04" door Kris Kendall, Jesse Kornblum en Nick Mikus - Screenshot van de -h-output van foremost (Public Domain) via Commons Wikimedia