Soy un principiante en el uso de comandos de programación.
¿Por qué {2} no funciona después de ([^ \ t] * \ t) en el terminal macOS?
¿Hay algún sitio web que proporcione Perl RegEx que funcione en mac? Gracias!
Soy un principiante en el uso de comandos de programación.
¿Por qué {2} no funciona después de ([^ \ t] * \ t) en el terminal macOS?
¿Hay algún sitio web que proporcione Perl RegEx que funcione en mac? Gracias!
RegExPlanet ofrece una página de prueba de expresión regular para Perl . Esta página funciona con Safari en macOS 10.12.
Es posible que grep
incluido con macOS no incluya todas las funciones que desea. Si es así, intente instalando grep
desde Homebrew o MacPorts.
bsd grep
no usa expresiones regulares de perl. Lea man grep
y observe lo que hace la opción -p
. Una vez más, man 7 re_format
explica cómo funciona la expresión regular en macOS con herramientas como grep
y sed
.
En su expresión regular, el carácter \t
no se interpreta como el carácter de control de pestaña. Por lo tanto, deberá escribir el carácter literal de la pestaña (control + v, pestaña) en su lugar -
grep -E '^([^ ]* ){2}mypattern ' FILE
o puede usar citas de ansi-c (las palabras de la forma $ 'cadena' se tratan de manera especial. La palabra se expande a cadena, con caracteres de escape de barra diagonal sustituida según lo especificado por el estándar ANSI C). -
grep -E $'^([^\t]*\t){2}mypattern\t' FILE
También puedes usar perl
directamente -
perl -ne 'print if /^([^\t]*\t){2}mypattern\t/' FILE
Lea otras preguntas en las etiquetas perl