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