Ho appena iniziato a studiare awk e sono un po 'confuso su tutte quelle versioni in circolazione. Esiste una "versione" che si trova su tutti i sistemi simili a Unix? Come, sai, vi? Lo standard awk supporta l'opzione -F?
Ho appena iniziato a studiare awk e sono un po 'confuso su tutte quelle versioni in circolazione. Esiste una "versione" che si trova su tutti i sistemi simili a Unix? Come, sai, vi? Lo standard awk supporta l'opzione -F?
Risposte:
awk - il più comune e si troverà sulla maggior parte dei sistemi simili a Unix, versione più vecchia e inferiore a quelli più recenti.
mawk - implementazione veloce di AWK che è base di codice basata su un interprete di codice byte.
nawk - mentre il linguaggio AWK era in fase di sviluppo, gli autori hanno rilasciato una nuova versione (da qui il n - n ew awk) per evitare confusione. Pensalo come il Python 3.0 di AWK.
gawk - abbreviato da GNU awk. L'unica versione in cui gli sviluppatori hanno tentato di aggiungere il supporto i18n. Consentito agli utenti di scrivere le proprie librerie condivise in C per estenderle con i propri "plug-in". Questa versione è l'implementazione standard per Linux, AWK originale è stato scritto per Unix v7.
Esistono altre versioni come jawk (implementazione java), bwk (implementazione di Brian W. Kernighan) e così via.
file /etc/alternatives/awkritornasymbolic link to /usr/bin/mawk
Puoi semplicemente usare awk. È definito da POSIX e pertanto deve esistere su tutti i sistemi conformi a POSIX.
Anche il -Fparametro è obbligatorio .
gensub(), testare con awk-> gawke pensare di essere bravo ad andare ...
gawk --posixper far funzionare gawk secondo lo standard POSIX. Verifica inoltre che lo script segua lo standard. Puoi usare awk --posix '' 2>/dev/nullUbuntu a prescindere, se gawk, mawk o original-awk sono usati come awk, ma l'opzione posix è riconosciuta solo da gawk. --posix deve essere l'ultima opzione per original-awk. Puoi usarlo awk -W posix ''con gawk e mawk.
mawk --posix ''fallisce, se usi mawk 1.3.3, ma riesce con un messaggio di errore, se usi mawk 1.3.4
awksarà su quasi tutti i sistemi basati su * NIX, ma le specifiche esatte di ciò che supporta si sposteranno leggermente poiché è del tutto possibile che sarà semplicemente collegato a una versione diversa simile a come /bin/shè spesso collegato a una shell specifica, spesso basho uno dei i suoi derivati. (Per la cronaca, conosco anche molte macchine a cui viè anche collegato un link simbolico vim.)
La pagina AWK di Wikipedia è un buon riferimento per iniziare a comprendere AWK.
L' opzione Field Separator ' -F' è supportata in tutte le varianti di AWK - afaik.
/usr/bin/awkeseguirà nawk, o gawk, o BusyBox awk (simile nel comportamento a gawk).