Veo muchos ejemplos y páginas de manual sobre cómo hacer cosas como buscar y reemplazar usando sed, awk o gawk.
Pero en mi caso, tengo una expresión regular que quiero ejecutar en un archivo de texto para extraer un valor específico. No quiero buscar y reemplazar. Esto se llama desde bash. Usemos un ejemplo:
Ejemplo de expresión regular:
.*abc([0-9]+)xyz.*
Archivo de entrada de ejemplo:
a
b
c
abc12345xyz
a
b
c
Tan simple como suena, no puedo entender cómo llamar a sed / awk / gawk correctamente. Lo que esperaba hacer es que mi script bash tenga:
myvalue=$( sed <...something...> input.txt )
Las cosas que he probado incluyen:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing