El contenido de mi filename
archivo es el siguiente (por ejemplo):
My block of line starts from here
START
First line
second line
third line
END
and end to here for example.
Quiero reemplazar el bloque de líneas entre START
y END
con una sola palabra, por ejemplo con SINGLEWORD
. Como abajo:
My block of line starts from here
SINGLEWORD
and end to here for example.
Puedo encontrar mi bloque de líneas con este comando:
grep -Pzo "START(.|\n)*END" filename
Y el resultado de ejecutar el comando anterior será así:
START
First line
second line
third line
END
Luego usé este comando para combinar todas las líneas en una sola línea:
LAST_RESULT | sed -e :a -e '/$/N; s/\n/ /; ta'
Entonces obtendré este resultado:
START First line second line third line END
Y con mi último comando los LAST_RESULTS | sed 's/.*/SINGLEWORD/'
cambio "SINGLEWORD"
y obtengo este resultado.
SINGLEWORD
Ahora lo que quiero es: ¿Cómo puedo usar este comando (o el comando de su sugerencia) y reemplazar (en su lugar) mi bloque de líneas a la palabra "SINGLEWORD"? Y el resultado final será como este archivo:
My block of line starts from here
SINGLEWORD
and end to here for example.
sed
debería ser posible pero probablemente más difícil de leer (Mira esta pregunta )