¿Por qué mi expresión regular de Perl no funciona para eliminar ciertas cadenas después de nuevas líneas?

¿Por qué mi expresión regular de Perl no funciona para eliminar ciertas cadenas después de nuevas líneas?

Tengo un texto que se parece a este

text
\centering
more text

Quiero convertirlo a:

text
more text

Usando Perl

Mi código es:

perl -00 -pe 's/\R+\\centering\R+/\n/g' example.md

¡No funciona en absoluto!

Tenga en cuenta que tanto esta como mi alternativa

perl -00 -pe 's/\\centering/*/g' example.md

producir la salida

text
*
more text

Y

perl -00 -pe 's/\R+/\n*/g' example.md

produce

text
*\centering
*more text

Entonces, trabajan individualmente, pero no juntos. ¡¿Qué estoy haciendo mal aquí?!

Respuesta1

No lo use 0como delimitador de registros, es más conveniente usarlo777

perl -0777 -pe 's/\R+\\centering\R+/\n/g' example.md
#      ^^^

produce el resultado que desea.

Dedocumentación:

El valor especial 00 hará que Perl absorba archivos en modo párrafo. Cualquier valor 0400 o superior hará que Perl absorba los archivos enteros, pero por convención el valor 0777 es el que normalmente se usa para este propósito.

información relacionada