Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
convertir un int en una cadena java
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
és igual a java
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a , , i respectivament. A més, Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>>
Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
representa tota la línia.
$ awk '{print ,}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, i representen els camps Nom i Salari respectivament.
Variables integrades a Awk
format.cadena
Les variables integrades d'Awk inclouen les variables de camp (, , , etc.) (Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat.
$ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>> $ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print ,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
executant scripts a linux
$ awk '{print NR '- ' }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print }' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
llista enllaçada java
$ awk '{ if (length(Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
)>max) max = longitud (Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length(Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>> Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
)>10' geeksforgeeks.txt>>> $ awk '{ if( == 'B6') print Awk és un llenguatge de script utilitzat per manipular dades i generar informes. El llenguatge de programació d'ordres awk no requereix compilació i permet a l'usuari utilitzar variables, funcions numèriques, funcions de cadena i operadors lògics.
Awk és una utilitat que permet a un programador escriure programes petits però efectius en forma de sentències que defineixen patrons de text que s'han de cercar a cada línia d'un document i l'acció que s'ha de fer quan es troba una coincidència dins d'un document. línia. Awk s'utilitza principalment per escanejar i processar patrons. Cerca un o més fitxers per veure si contenen línies que coincideixen amb els patrons especificats i després realitza les accions associades.
Awk s'abreuja a partir dels noms dels desenvolupadors: Aho, Weinberger i Kernighan.
QUÈ PODEM FER AMB AWK?
1. Operacions AWK:
(a) Explora un fitxer línia per línia
(b) Divideix cada línia d'entrada en camps
(c) Compara la línia/camps d'entrada amb el patró
(d) Realitza accions sobre línies coincidents
2. Útil per a:
(a) Transformar fitxers de dades
(b) Elaborar informes amb format
3. Construccions de programació:
(a) Format les línies de sortida
(b) Operacions aritmètiques i de cordes
(c) Condicionals i bucles
Sintaxi:
awk options 'selection _criteria {action }' input-file>fitxer de sortida> Opcions:
-f program-file : Reads the AWK program source from the file program-file, instead of from the first command line argument. -F fs : Use fs for the input field separator>
Exemples d'ordres
Exemple:
Considereu el fitxer de text següent com a fitxer d'entrada per a tots els casos següents:
$cat>empleat.txt>>>
Per defecte, Awk imprimeix totes les línies de dades del fitxer especificat. $ awk '{print}' employee.txt> Sortida:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000>
A l'exemple anterior, no es dóna cap patró. Per tant, les accions són aplicables a totes les línies. L'acció d'imprimir sense cap argument imprimeix tota la línia per defecte, de manera que imprimeix totes les línies del fitxer sense errors.
2. Imprimeix les línies que coincideixin amb el patró donat.
$ awk '/manager/ {print}' employee.txt> Sortida:
ajay manager account 45000 varun manager sales 50000 amit manager account 47000>
A l'exemple anterior, l'ordre awk imprimeix tota la línia que coincideix amb el 'gestor'.
3. Divisió d'una línia en camps: Per a cada registre, és a dir, línia, l'ordre awk divideix el registre delimitat pel caràcter d'espai en blanc per defecte i l'emmagatzema a les variables $n. Si la línia té 4 paraules, s'emmagatzemarà a $1, $2, $3 i $4 respectivament. A més, $0 representa tota la línia.
$ awk '{print $1,$4}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 i $4 representen els camps Nom i Salari respectivament.
Variables integrades a Awk
Les variables integrades d'Awk inclouen les variables de camp ($1, $2, $3, etc.) ($0 és la línia sencera) que divideixen una línia de text en paraules o peces individuals anomenades camps.
NR: l'ordre NR manté un recompte actual del nombre de registres d'entrada. Recordeu que els registres solen ser línies. L'ordre Awk realitza les declaracions de patró/acció una vegada per a cada registre d'un fitxer. NF: l'ordre NF manté un recompte del nombre de camps dins del registre d'entrada actual. FS: l'ordre FS conté el caràcter separador de camps que s'utilitza per dividir camps a la línia d'entrada. El valor predeterminat és espai en blanc, és a dir, espai i caràcters de tabulació. FS es pot reassignar a un altre caràcter (normalment a BEGIN) per canviar el separador de camps. RS: l'ordre RS emmagatzema el caràcter de separador de registres actual. Com que, per defecte, una línia d'entrada és el registre d'entrada, el caràcter separador de registres per defecte és una nova línia. OFS: l'ordre OFS emmagatzema el separador de camps de sortida, que separa els camps quan Awk els imprimeix. El valor predeterminat és un espai en blanc. Sempre que print tingui diversos paràmetres separats per comes, imprimirà el valor d'OFS entre cada paràmetre. ORS: l'ordre ORS emmagatzema el separador de registres de sortida, que separa les línies de sortida quan Awk les imprimeix. El caràcter predeterminat és un caràcter de nova línia. print emet automàticament el contingut de l'ORS al final de tot el que es dóna per imprimir.
Exemples:
Ús de variables integrades NR (Número de línia de visualització)
$ awk '{print NR,$0}' employee.txt> Sortida:
1 ajay manager account 45000 2 sunil clerk account 25000 3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000 7 sunil peon sales 13000 8 satvik director purchase 80000>
A l'exemple anterior, l'ordre awk amb NR imprimeix totes les línies juntament amb el número de línia.
Ús de variables integrades de NF (Mostra l'últim camp)
$ awk '{print $1,$NF}' employee.txt> Sortida:
ajay 45000 sunil 25000 varun 50000 amit 47000 tarun 15000 deepak 23000 sunil 13000 satvik 80000>
A l'exemple anterior, $1 representa Nom i $NF representa Salari. Podem obtenir el salari mitjançant $NF , on $NF representa l'últim camp.
Un altre ús de les variables integrades NR (Línia de visualització del 3 al 6)
$ awk 'NR==3, NR==6 {print NR,$0}' employee.txt> Sortida:
3 varun manager sales 50000 4 amit manager account 47000 5 tarun peon sales 15000 6 deepak clerk sales 23000>
Més exemples
Per al fitxer de text donat:
$cat>geeksforgeeks.txt A B C Tarun A12 1 Man B6 2 Praveen M42 3>
1) Per imprimir el primer element juntament amb el número de fila (NR) separat amb – de cada línia a geeksforgeeks.txt:
$ awk '{print NR '- ' $1 }' geeksforgeeks.txt> 1 - A 2 - Tarun 3 – Manav 4 - Praveen>
2) Per tornar la segona columna/element de geeksforgeeks.txt:
La pregunta hauria de ser: - Per tornar la segona columna/element de geeksforgeeks.txt:
$ awk '{print $2}' geeksforgeeks.txt> B A12 B6 M42>
3) Per imprimir qualsevol línia no buida si n'hi ha
$ awk 'NF <0' geeksforgeeks.txt>
aquí NF hauria de ser 0 com a mínim i l'usuari també ha d'imprimir el número de línia:
resposta correcta: awk 'NF == 0 {print NR}' geeksforgeeks.txt
O
awk 'NF <= 0 {print NR}' geeksforgeeks.txt
0>
4) Per trobar la longitud de la línia més llarga present al fitxer:
$ awk '{ if (length($0)>max) max = longitud ($0) } END { print max }' geeksforgeeks.txt> 13>
5) Per comptar les línies d'un fitxer:
$ awk 'END { print NR }' geeksforgeeks.txt> 3>
6) Impressió de línies amb més de 10 caràcters:
$ awk 'length($0)>10' geeksforgeeks.txt>>>
$ awk '{ if($3 == 'B6') print $0;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>
;}' geeksforgeeks.txt>
8) Per imprimir els quadrats dels primers nombres de l'1 al n, digueu 6:
$ awk 'BEGIN { for(i=1;i<=6;i++) print 'square of', i, 'is',i*i; }'> square of 1 is 1 square of 2 is 4 square of 3 is 9 square of 4 is 16 square of 5 is 25 square of 6 is 36>