Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:bash:awk [24/02/2020 23:12] – [awk] matelinux:bash:awk [24/02/2020 23:29] (actual) mate
Línia 2: Línia 2:
 /via: [[https://www.howtogeek.com/562941/how-to-use-the-awk-command-on-linux/]] /via: [[https://www.howtogeek.com/562941/how-to-use-the-awk-command-on-linux/]]
   * rule = pattern + action   * rule = pattern + action
-  * todo entre comillas simples +  * todo el comando entre comillas simples 
-  * +  * ''print'' 
 +    * $1,$3,$7: campo 1, 3 y 7 respectivamente (separados por espacio por defecto) 
 +    * $NF: último campo 
 +    * $0 : la línea entera 
 +  * cambiar carácter separador: **OFS="<char>"** 
 +  * ''BEGIN'' y ''END'' se ejecutan antes y después de procesar el texto, en su propio ámbito **{ }** 
 +  * **-F'<char_separador>'**: parámetro (previo a sección de procesado) para indicar el caracter separador de campos 
 +  * patrones: 
 +    * debe preceder inmediatamente a la acción que se ha de ejecutar:<code bash>awk -F: '$3 >= 1000 {print $1,$6}' /etc/passwd</code> 
 +    * los patrones hacen uso de [[https://en.wikipedia.org/wiki/Regular_expression|expresiones regulares]]:<code bash>awk '/UUID/ {print $0}' /etc/fstab</code><code bash>awk '/^UUID/ {print $0}' /etc/fstab</code> 
 +  * [[https://www.gnu.org/software/gawk/manual/gawk.html#Built_002din|funciones internas]] 
 +  * si el comando es demasiado complejo, se pueda usar como script:<code awk; omit.awk>#!/usr/bin/awk -f 
 + 
 +BEGIN { 
 +  # set the input and output field separators 
 +  FS=":" 
 +  OFS=":" 
 +  # zero the accounts counter 
 +  accounts=0 
 +
 +
 +  # set field 2 to nothing 
 +  $2="" 
 +  # print the entire line 
 +  print $0 
 +  # count another account 
 +  accounts++ 
 +
 +END { 
 +  # print the results 
 +  print accounts " accounts.\n" 
 +}</code> 
 +    * <code bash>chmod +x omit.awk 
 +./omit.awk <file></code> 
 == ejemplos == ejemplos
-  * buscar lineas con 3 palabras solo: <code bash>awk '{ if ( NF == 3 ) print } ' /path/to/input</code>+  * buscar líneas con 3 palabras solo: <code bash>awk '{ if ( NF == 3 ) print } ' /path/to/input</code>
   * calcular valor mínimo: <code bash>seq 1 10 | awk 'NR==1 { MIN=$1; next }  $1 < MIN { MIN=$1 } END{ print MIN }'</code>   * calcular valor mínimo: <code bash>seq 1 10 | awk 'NR==1 { MIN=$1; next }  $1 < MIN { MIN=$1 } END{ print MIN }'</code>
   * calcular valor máximo: <code bash>seq 1 10 | awk 'NR==1 { MAX=$1; next } $1 > MAX { MAX=$1 } END{ print MAX }'</code>   * calcular valor máximo: <code bash>seq 1 10 | awk 'NR==1 { MAX=$1; next } $1 > MAX { MAX=$1 } END{ print MAX }'</code>
  • linux/bash/awk.1582614749.txt.gz
  • Darrera modificació: 24/02/2020 23:12
  • per mate