Vale la pena di imparare Awk?

Sono decente con bash scripting e sto accostando a regex, e un piccolo utilizzo sed. L'apprendimento awk vale ancora con tutte le alternative là fuori. Opinioni?

  • Come visualizzare determinate righe da un file di text in Linux?
  • C'è un sed equivalente a awk -F ':' '{print $ 2}'?
  • linux + corrisponde solo VALIDO IP dal file di text in altro file
  • Come posso utilizzare Puppet per imporre l'adesione a gruppi locali?
  • Estrarre una sezione di linea del backup di mysql utilizzando sed
  • sostituire il text nel file senza sovrascrivere il file
  • Come posso utilizzare il grep per trovare gli errori più frequenti nel mio file di registro?
  • sed sostituiscono tutte le linguette e gli spazi con un unico spazio
  • 5 Solutions collect form web for “Vale la pena di imparare Awk?”

    Le diverse alternative esistono, non perché ognuno può fare la stessa cosa dell'altro (anche se questo è vero per casi localizzati o per linguaggi di programmazione come Perl), ma piuttosto perché possono fare cose diverse .

    sed non è molto adatto per elaborare i dati tabulari, e usando la bash pura per che è di solito più dolore di quello che vorrebbe. awk funziona quasi banalmente sui dati tabulari, e può anche essere usato per scrivere piccole macchine statali. Trascorti un po 'di tempo a guardare le varie soluzioni awk su Overflow Stack per alcune idee su cosa può fare.

    Io uso awk per tutto il tempo e evita di scrivere o utilizzare perl quanto più ansible. Perl ha voluto fare troppo e diventato un linguaggio generale, ma purtroppo ha una syntax orribile e illeggibile, IMHO. Il mantenimento di script perl che è stato scritto da qualcun altro è un dolore e questo tende ad essere vero per i nostri script anche dopo un po '.

    D'altra parte, awk ha un ambito limitato, ma ben definito e funziona bene con esso. Si interface relativamente bene anche con script shell, a differenza di perl.

    Quanto a bash essere un sopravvissuto, preferisco ksh93 se mi chiedete.

    Difficilmente chiamerei Perl "morire", qualunque altra opinione che potresti trattenere

    Poiché hai fatto il confronto Awk vs Perl, potrebbe essere interessato a guardare il libro Minimal Perl . Esso mostra come Perl si confronta con diverse utility di row di command Unix / Linux. Dovrebbe darti abbastanza informazioni per prendere una decisione più informata su cosa studiare, indipendentemente dalla vostra scelta.

    Personalmente, penso che ci siano migliori scelte che Awk, e solo imparare se era chiaramente la scelta migliore per il mio task a portta di mano. Ma poi di nuovo, potrei dire lo stesso su un sacco di cose …

    Io uso ancora awk a volte – anche se uso più frequentemente Perl. Se non volete imparare Perl perché pensate che sta morendo (una vista che non sono d'accordo, ma hai diritto alla tua visione), allora consideri Python invece. Per l'elaborazione semplice dei dati colonnari, l'awk è eccellente. Per un lavoro più generale, Perl o Python sono eccellenti. Dopo di che, si stanno muovendo in sisthemes di sisthemes pesanti e forse C o C ++ (o Go, o …).

    Bash è un guscio molto potente. Ci sono ancora cose che Perl può fare che Bash non può. Devo ancora scrivere codice che funziona con altre shell, quindi devo stare attento a quello che uso dal set di funzioni Bash. Sapere bene sarà bene – ma gli altri strumenti hanno anche il loro posto.

    Quindi, se hai il tempo di imparare awk moderatamente bene, o sarà facile per te perché sei già esperto nei componenti (espressioni regolari estese, syntax simile a C), allora è uno strumento occasionalmente utile per avere a tua disposizione. Potresti preferire invece imparare Perl o Python invece.

    Dipende dal tuo livello di comfort.

    Sono venuto alla shell tramite perl, quindi sono comodo usare il perl per cose complicate.

    Tuttavia ritengo che più mi sto facendo, voglio fare cose più complicate in shell one-liners anziché affrontare il sovraccarico di un "appropriato" script perl. Trovo awk uno strumento prezioso per fare cose complicate.

    Non fa mai male ad imparare un po 'di tutto, anche se è sufficiente per capire che questo particolare strumento non si inserisce nei tuoi modi di fare le cose.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.