Estoy tratando de usar una expresión regular usando sed
. He probado mi expresión regular con kiki, una aplicación gnome para probar regexpd, y funciona en kiki.¿Cómo se "depura" una expresión regular con sed?
date: 2010-10-29 14:46:33 -0200; author: 00000000000; state: Exp; lines: +5 -2; commitid: bvEcb00aPyqal6Uu;
quiero reemplazar author: 00000000000;
sin nada. Por lo tanto, he creado la expresión regular, que funciona cuando lo pruebo en kiki:
author:\s[0-9]{11};
pero no funciona cuando lo pruebo en sed
.
sed -i "s/author:\s[0-9]{11};//g" /tmp/test_regex.txt
Sé que regex tiene diferentes implementaciones, y este podría ser el problema. Mi pregunta es: ¿cómo puedo al menos intentar "depurar" lo que está sucediendo con sed? ¿Por qué no está funcionando?
He encontrado que cuando se utiliza sed con una sustitución y desea depurar la parte "buscar", primero ayuda a obtener la expresión regular en grep. Debido a que grep deja en claro si coincide o no, puede solucionar problemas, y puede eliminar desde el lado derecho hasta que coincida y solucionar problemas de compilación, viendo lo que coincide. Podrías usar otra herramienta para probar, veo que usaste una llamada kiki. ¿Qué hay de usar grep, puede encontrar que con el interruptor derecho y sed, obtiene la misma implementación. como GNU ERE o algo así. – barlop
Ver también: https://regex101.com/ –