regex - txt - ls grep
Usa Grep para encontrar bloques de texto entre dos frases(incluidas las frases) (3)
Puedes usar sed en vez de esto:
sed -n ''/mutablePath = CGPathCreateMutable();/,/CGPathAddPath(skinMutablePath, NULL, mutablePath);/p'' infile
EDITAR:
No estoy seguro de si el indicador -P
de grep es compatible con BBEdit. Si es así, puedes usar esto:
grep -oP ''mutablePath = CGPathCreateMutable();/X*CGPathAddPath(skinMutablePath, NULL, mutablePath);/'' infile
Según la página del manual grep:
-P, --perl-regexp Interpreta PATTERN como una expresión regular de Perl.
¿Es posible usar grep para leer todo el texto a partir de:
mutablePath = CGPathCreateMutable();
y terminando con:
CGPathAddPath(skinMutablePath, NULL, mutablePath);
Donde hay una cantidad arbitaria de texto entre esas dos frases?
NOTA: Tengo que usar grep porque estoy usando BBEdit.
Necesitarás usar GNU grep
:
grep -oPz ''mutablePath = CGPathCreateMutable/(/);.*?(/n.*?)*.*?CGPathAddPath/(skinMutablePath, NULL, mutablePath/);'' file
Si no tiene GNU grep
, puede usar pcregrep
para lograr lo mismo:
pcregrep -M ''mutablePath = CGPathCreateMutable/(/);.*(/n|.)*CGPathAddPath/(skinMutablePath, NULL, mutablePath/);'' file
Si desea imprimir las líneas entre e incluidas, puede usar:
perl -ne ''/start line/ .. /end line/ and print''