En más de una ocasión me he encontrado con el termino *nix haciendo referencia a los sistemas unix y/o linux. Aunque se entiende a qué hace mención, siendo estrictos la cadena linux no encaja con la expresión regular (RE) *nix.Me he puesto a mirar algunas RE que fueran correctas, de manera que encajaran con las dos cadenas (unix y linux), indistintamente. La más restrictiva podría ser ésta:
(unix|linux)
o una versión algo más ahorrativa:
(uni|linu)x
Esta otra (que ya han utilizado aquí) es menos restrictiva
(u|li)n[iu]x
ya que también encaja con linix o unux, p. ej.
Si tengo que elegir, me quedo con
n[iu]x
Aunque en este link alguien ha utilizado una versión casi igual (*n[iu]x), lo cierto es que para que esa expresión fuera una ERE coincidente con lo expuesto debería ser
.*n[iu]x
n[iu]x es la que "ata" menos de entre las descritas, pero es correcta (atendiendo a la salida del comando GNU grep), permite identificar a simple vista a qué te refieres, y además es más sencilla de escribir que las anteriores.
Eso sí, sólo hay "match" si lo que le llega es en minúsculas.
Teniendo en cuenta que la sintaxis de bash requiere escapar ciertos caracteres, se puede ver, en la imagen del encabezado, alguno de los resultados de utilizar estas RE como parámetro de grep.
¿Cómo? ¿Friki yo?


Inglés a castellano
Anglès a català
Deja tu comentario