Red de conocimiento del abogados - Preguntas y respuestas jurídicas - grep -q -e "^[^\-][^\-]*-[^\-][^\-]*$", por favor ayuda a explicar ^[^\-][^\-] *-[^\-][^\-]*$ ¿Qué significa la expresión regular?

grep -q -e "^[^\-][^\-]*-[^\-][^\-]*$", por favor ayuda a explicar ^[^\-][^\-] *-[^\-][^\-]*$ ¿Qué significa la expresión regular?

El ^ entre corchetes significa exclusión, es decir, caracteres que no son estos caracteres

[^\-] en este ejemplo significa un carácter que no es '-', porque '- ' tiene el significado de indicar un rango entre corchetes, por lo que '\' se agrega delante para convertirlo en un carácter ordinario '-' (pero el carácter de escape '\' es redundante aquí: en este ejemplo, ' -' obviamente no es un rango de expresión, el autor subestimó la capacidad de comprensión del motor normal)

La expresión completa significa: el comienzo de la cadena es un carácter que no es '-', seguido de 0 a más caracteres que no sean '-', seguidos de un '-', seguido de un carácter distinto de '-', seguido de 0 a más caracteres distintos de '-', el final de la cadena

Sí, ¿no es un poco detallado?

Se puede reducir a ^[^\-] -[^\-] $

Luego se reduce aún más a ^[^- ] -[^-] $