AWK - Expresiones regulares

AWK es muy poderoso y eficiente en el manejo de expresiones regulares. Se pueden resolver varias tareas complejas con expresiones regulares simples. Cualquier experto en línea de comandos conoce el poder de las expresiones regulares.

Este capítulo cubre expresiones regulares estándar con ejemplos adecuados.

Punto

Coincide con cualquier carácter individual excepto el carácter de final de línea. Por ejemplo, el siguiente ejemplo coincidefin, fun, fan etc.

Ejemplo

[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'

Al ejecutar el código anterior, obtiene el siguiente resultado:

Salida

fun
fin
fan

Inicio de línea

Coincide con el inicio de la línea. Por ejemplo, el siguiente ejemplo imprime todas las líneas que comienzan con patrónThe.

Ejemplo

[jerry]$ echo -e "This\nThat\nThere\nTheir\nthese" | awk '/^The/'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

There
Their

Fin de la línea

Coincide con el final de la línea. Por ejemplo, el siguiente ejemplo imprime las líneas que terminan con la letran.

Ejemplo

[jerry]$ echo -e "knife\nknow\nfun\nfin\nfan\nnine" | awk '/n$/'

Salida

Al ejecutar este código, obtiene el siguiente resultado:

fun
fin
fan

Coincidir juego de caracteres

Se utiliza para hacer coincidir solo uno de varios caracteres. Por ejemplo, el siguiente ejemplo coincide con el patrónCall y Tall pero no Ball.

Ejemplo

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[CT]all/'

Salida

Al ejecutar este código, obtiene el siguiente resultado:

Call
Tall

Conjunto exclusivo

En conjunto exclusivo, el quilate niega el conjunto de caracteres entre corchetes. Por ejemplo, el siguiente ejemplo imprime soloBall.

Ejemplo

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[^CT]all/'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

Ball

Modificación

Una barra vertical permite aplicar un OR lógico a las expresiones regulares. Por ejemplo, el siguiente ejemplo imprimeBall y Call.

Ejemplo

[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

Call
Ball

Cero o una ocurrencia

Coincide con cero o una aparición del carácter anterior. Por ejemplo, el siguiente ejemplo coincideColour tanto como Color. Hemos hechou como un carácter opcional usando ?.

Ejemplo

[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

Colour
Color

Cero o más ocurrencia

Coincide con cero o más ocurrencias del carácter anterior. Por ejemplo, el siguiente ejemplo coincideca, cat, catt, y así.

Ejemplo

[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

ca
cat
catt

Una o más ocurrencias

Coincide con una o más ocurrencias del carácter anterior. Por ejemplo, el ejemplo siguiente coincide con una o más ocurrencias de la2.

Ejemplo

[jerry]$ echo -e "111\n22\n123\n234\n456\n222"  | awk '/2+/'

Al ejecutar el código anterior, obtiene el siguiente resultado:

Salida

22
123
234
222

Agrupamiento

Parentheses ()se utilizan para agrupar y el carácter | se utiliza para alternativas. Por ejemplo, la siguiente expresión regular coincide con las líneas que contienenApple Juice or Apple Cake.

Ejemplo

[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk 
   '/Apple (Juice|Cake)/'

Al ejecutar este código, obtiene el siguiente resultado:

Salida

Apple Juice
Apple Cake