Noțiuni introductive despre comanda Awk

Noțiuni introductive despre comanda Awk
⏱️ 5 min read

Awk este un limbaj de programare puternic pentru prelucrarea datelor încorporat în aproape fiecare sistem * nix. Arată ca un limbaj de programare cu scop general la suprafață, dar este conceput pentru a lua intrări și a executa acțiuni pe baza acelei intrări. Dacă trebuie să procesați text pe baza anumitor condiții, awk va face aproape întotdeauna treaba mai repede decât un limbaj cu scop general, cum ar fi C. Este, de asemenea, interpretat, astfel încât să evitați procesul lung de compilare și depanare a limbajelor compilate.

Fapt extra distractiv: numele ciudat al programului este inițialismul numelor programatorilor săi: Alfred Aho, Peter Weinberger și Brian Kernighan

Cum Se Remediază Datele Mobile Car...
Cum Se Remediază Datele Mobile Care Nu Funcționează Pe Android

Sintaxa de bază a lui Awk

Când este invocat pe linia de comandă, awk urmează modelul de bază de mai jos:

Awk va executa acțiunea ori de câte ori modelul se potrivește în fișierul specificat. Dacă nu specificați un fișier, awk va rula pe ieșirea standard. Când se potrivesc tiparele, awk poate lua expresii regulate, precum și intrări programatice. Să luăm în considerare acest exemplu de bază de mai jos:

Acest program cu o singură linie va imprima fiecare linie din fișierul „e-mailuri” care conțin caracterele com. În awk $0 se referă la linia curentă, care este și comportamentul implicit. Rândul ar fi putut fi scris fără $0, și ar fi funcționat identic.

Câmpuri de imprimare

Deoarece awk poate identifica și analiza separatoarele de câmp, este util pentru tipărirea anumitor coloane sau rânduri de date. Pentru acest exemplu vom folosi fișierul „/ etc / passwd”.

awk-command-Getting-Start-2

Acest program cu o singură linie face câteva lucruri. Steagul -F indică faptul că următorul caracter (: în acest exemplu) ar trebui interpretat ca separator de câmp. Awk le imprimă primul câmp, specificat de $1.

De asemenea, putem imprima mai multe câmpuri odată, specificând câmpurile secvențial:

Va produce o ieșire care arată ca următoarea.

awk-command-Getting-Start-4

Aceasta tipărește al patrulea și al cincilea câmp al passwd fișier cu un spațiu între ele. Rețineți că spațiul este între ghilimele duble. Aceasta îl specifică ca un caracter literal în comanda de imprimare, deci este tipărit așa cum este scris. De asemenea, putem adăuga literale mai complicate pentru a ne curăța rezultatele:

awk-command-Getting-Start-5

Aceasta va imprima rezultatul cu etichete pentru identificare. Și putem scoate toate acestea într-un fișier nou folosind un cursor (>).

Putem combina ceea ce știm până acum pentru a prelucra date pe scară largă. De exemplu, putem folosi expresii regulate pentru a imprima toate liniile dintr-un document care conține un număr de telefon valabil din SUA.

Extinderea puterii de potrivire a comenzii Awk

Awk poate procesa, de asemenea, informații folosind o varietate de operanzi. Aceasta include operanzi standard precum ==, <, >, <=, >=, și !=, precum și operanzi specifici awk ~ și !~, care înseamnă „meciuri” și „nu se potrivește” respectiv. Acești operanzi sunt utilizați atunci când se compară expresii regulate cu logica booleană, precum și fraze programatice mai standard.

Exemple de comenzi Awk

Tipărește toate liniile mai lungi de optzeci de caractere din fișierul „date”. Rețineți lipsa unei declarații de tipărire: în absența unei acțiuni specificate, awk va imprima linia completă ori de câte ori se potrivește un model.

Tipărește toate liniile în care primul câmp este egal cu șirul „utilizator”. Fără un -F flag, awk va folosi spațiul alb ca separator de câmp implicit. De asemenea, rețineți că awk și fișierul nu sunt specificate. Aceasta este pentru utilizare în scripturi în fișiere separate, așa cum este prezentat mai jos.

Tipărește al treilea câmp ori de câte ori al cincilea câmp se potrivește cu expresia regulată /root/.

Când câmpul 5 nu se potrivește /root/, imprimați câmpul trei. Aceasta folosește C-like if , care este, de asemenea, compatibil cu awk. Acest format permite o mai mare flexibilitate pentru programatorii familiarizați cu limbaje de uz general.

Salvarea scripturilor în fișiere

Scripturile Awk pot fi, de asemenea, salvate în fișiere care vă permit să salvați programe mai complexe:

Când utilizați -f flag, awk rulează scriptul în calea fișierului specificată, și anume program.awk. Comenzile din acel program vor procesa fișierul „date”.

Acțiunile pot fi, de asemenea, executate înainte și după program, folosind BEGIN și END:

După cum puteți vedea mai sus, # simbolul începe un comentariu, care durează până la sfârșitul liniei.

Concluzie

Acest ghid atinge doar elementele de bază ale awk. Există mult mai multe de construit și de explorat dincolo de acest lucru. Examinați Documentație GNU pentru awk sau Limbajul de programare Awk, și manualul awk scris de dezvoltatorii programului.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x