Differenza tra sed e awk

Il differenza principale tra sed e awk è quello sed è un'utilità di comando che funziona con flussi di caratteri per la ricerca, il filtraggio e l'elaborazione del testo awk più potente e robusto di sed con sofisticati costrutti di programmazione come if / else, while, do / while ecc.

Un sistema operativo funziona come interfaccia tra l'utente e i dispositivi hardware. Il computer non può eseguire alcuna attività senza un sistema operativo. Ci sono molti sistemi operativi e UNIX è uno di questi. È un sistema operativo stabile che supporta l'ambiente multiutente. Linux è un altro sistema operativo popolare basato su UNIX. Sia UNIX che Linux forniscono una potente interfaccia a riga di comando (CLI). Gli utenti possono immettere i comandi nella CLI per eseguire varie attività. C'è un gran numero di comandi, e sed e awk sono due. Questi comandi aiutano il filtraggio e la trasformazione del testo.

Aree chiave coperte

1. Cosa è sed
     - Definizione, esempi
2. Cosa è awk
    - Definizione, esempi
3. Qual è la differenza tra sed e awk
     - Confronto tra le principali differenze

Parole chiave

sed, awk, Sistema operativo

Cosa è sed

Il comando sed consente di modificare e filtrare i file di testo.

Figura 1: CLI per fornire comandi in Linux e UNIX

sed '1,3 d' test1.txt

Il comando precedente mostrerà le linee dopo la riga 3. Non visualizzerà 1, 2, 3 linee di test1.txt.

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

Il comando precedente sostituirà cab invece di abc nel file test1.txt.

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

Il comando precedente sostituirà 1 invece di uno nel file test1.txt.

sed 1,2! d 'test1.txt

Questo mostrerà solo la linea 1 e la linea 2.

Questi sono alcuni esempi per sed. Nel complesso, sed consente agli utenti di eseguire il filtraggio e la ricerca.

Cosa è awk

Il comando awk consente la ricerca di dati in un file e la stampa di dati sulla console. Se un file contiene più colonne, è anche possibile trovare i dati in colonne specifiche. Inoltre, aiuta attività come la ricerca, l'esecuzione condizionale, l'aggiornamento e il filtraggio.

awk 'print' file1.txt

Il comando sopra mostrerà tutto il contenuto nel file1.txt.  

Supponiamo che il file file1.txt contenga più colonne.

awk 'print $ 1' file1.txt

Questo comando stampa la prima colonna di file1.txt. Per impostazione predefinita, il comando awk considera uno spazio bianco come separatore.

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

Il comando precedente stampa la prima e la terza colonna di file1.txt con uno spazio intermedio.

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

Il comando precedente stamperà la concatenazione della prima e della terza colonna.

awk '/ example / print' file1.txt

Il comando precedente stampa tutte le righe nel file file1.txt che contiene la parola esempio.

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

Il comando precedente stampa tutte le righe nel file file1.txt che contiene numeri da 0 a 9.

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

Questo stamperà le righe in file1.txt che iniziano con un numero.

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

Questo stamperà le righe in file1.txt che termina con un numero.

È anche possibile controllare i condizionali come segue.

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

Questo stamperà la riga se, il contenuto inizia con 123.

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

Questo stamperà le righe nella colonna due che iniziano con un numero.

Questi sono alcuni esempi di awk.

Nel complesso, awk è un potente comando per l'elaborazione e l'analisi dei file di testo.

Differenza tra sed e awk

Definizione

La sed è un'utilità della riga di comando che analizza e trasforma il testo, utilizzando un linguaggio di programmazione semplice e compatto. L'awk è un'utilità a riga di comando progettata per l'elaborazione del testo che consente di scrivere programmi efficaci sotto forma di istruzioni.

Funzionalità

Sia sed che awk consentono l'elaborazione di flussi di caratteri per attività come la trasformazione del testo. L'awk è più potente e robusto di sed. È simile a un linguaggio di programmazione.

Complessità

Il sed è semplice e limitato mentre awk è più complesso e versatile.

Conclusione

La differenza tra sed e awk è che sed è un'utilità di comando che funziona con flussi di caratteri per la ricerca, il filtraggio e l'elaborazione del testo mentre awk più potente e robusto di sed con sofisticati costrutti di programmazione come if / else, while, do / while etc.

Riferimento:

1. Comando AWK: Sessione 1: Seleziona dati colonna, Testing World, 8 febbraio 2017, disponibile qui.
2. Utilizzo dell'utilità AWK di Linux, Frank the Programmer, 25 giugno 2011, disponibile qui.
3. Esercitazione su Linux / Unix || Comandi SED in Linux di Shiva, Durga Software Solutions, 30 ottobre 2016, disponibili qui.

Cortesia dell'immagine:

1. "Foremost in Xubuntu 11.04" di Kris Kendall, Jesse Kornblum e Nick Mikus - Screenshot dell'output -h di Foremost (Public Domain) via Commons Wikimedia