Com utilitzar la comanda awk en Bash
Quan es treballa en l'entorn de línia de comandes, és essencial tenir una comprensió sòlida dels diversos comandos disponibles per gestionar eficaçment fitxers, directoris i altres dades. Un d'aquests comandos és el comandament 'awk'. awk és una utilitat potent utilitzada per processar i manipular fitxers de text en l'entorn Unix/Linux. Aquest article explicarà què és el comandament 'awk' i maneres d'utilitzar-lo eficaçment.
Què és la comanda ‘awk’?
La comanda 'awk' és una eina potent per a manipular i processar fitxers de text en entorns Unix/Linux. Es pot utilitzar per a realitzar tasques com ara la coincidència de patrons, el filtratge, la classificació i la manipulació de dades. awk s'utilitza principalment per a processar i manipular dades de manera estructurada.
Com usar la comanda awk
awk és una eina de línia de comandes que es pot utilitzar de diverses maneres. Es pot invocar directament des de la línia de comandes, o es pot utilitzar en conjunt amb un script de shell. Aquí teniu alguns exemples de com utilitzar awk:
Exemple 1: Comptar el nombre de línies en un fitxer
Per comptar el nombre de files d'un fitxer, podeu utilitzar la següent sintaxi awk:
awk 'END{print NR}' <file-name.txt>Aquí, “NR” és una variable integrada que conté el nombre de registres (linies) processades per awk. La paraula clau “END” indica a awk que executi aquesta instrucció després que s'hagin processat totes les línies del fitxer. Aquí he creat un fitxer de text per a fins d'il·lustració i després he utilitzat la sintaxi anterior en un script de shell que és:
#!/bin/bash
awk 'END{print NR}' testfile.txt
El fitxer de text que vaig crear té dues línies i quan s'utilitza la comanda awk, la sortida mostrada és 2, podeu veure el fitxer de text que vaig crear a la imatge a continuació:
Exemple 2: Filtrar Dades
L'awk es pot utilitzar per filtrar dades en funció de criteris específics i aquí teniu la sintaxi que s'ha de fer servir per a aquest propòsit:
awk '!/<data-to-filter>/' <file-name.txt>Per exemple, podeu utilitzar la comanda a continuació per filtrar totes les línies d'un fitxer que continguin la paraula “Hola.”
#!bin/bash
awk '!/Hello/' testfile.txtEn aquest exemple, el símbol “!” nega la cerca d'expressions regulars, així que totes les línies que no contenen la paraula “Hello” seran impreses. He utilitzat el mateix fitxer de text que en l'exemple anterior, així que aquí està la sortida de l'script donat anteriorment:
Exemple 3: Extracció de Camps Específics
awk també es pot utilitzar per extreure camps específics d'un fitxer. Per exemple, si tens un fitxer que conté una llista de noms i adreces, i vols extreure només els noms, pots utilitzar la següent comanda:
awk '{print $<field-number>}' <file-name.txt>Aquí per il·lustració, he imprimir el primer camp del mateix fitxer de text i “$1” representa el primer camp en cada línia del fitxer. La comanda “print” indica a awk que imprimeixi només aquell camp.
#!/bin/bash
awk '{print $1}' testfile.txtEn el fitxer de text, la primera entrada de la primera línia és «Això» i la primera entrada de la segona línia és «Hola», així que aquí és la sortida del codi donat:
Conclusió
La comanda awk és una eina poderosa que s'utilitza per manipular i processar fitxers de text. Permet realitzar diverses operacions sobre fitxers de text, com ara imprimir columnes específiques, cercar patrons i calcular sumes. Mitjançant el domini dels fonaments d'awk, podeu simplificar el vostre flux de treball i convertir-vos en un usuari de Linux o Unix més eficient i efectiu.


