O conteúdo do meu filename
arquivo é o seguinte (por exemplo):
My block of line starts from here
START
First line
second line
third line
END
and end to here for example.
Quero substituir o bloco de linhas entre START
e END
com apenas uma única palavra, por exemplo, com SINGLEWORD
. Como abaixo:
My block of line starts from here
SINGLEWORD
and end to here for example.
Eu posso encontrar meu bloco de linhas usando este comando:
grep -Pzo "START(.|\n)*END" filename
E o resultado da execução do comando acima será assim:
START
First line
second line
third line
END
Então eu usei este comando para combinar todas as linhas em uma única linha:
LAST_RESULT | sed -e :a -e '/$/N; s/\n/ /; ta'
Então eu vou receber este resultado:
START First line second line third line END
E com meu último comando, LAST_RESULTS | sed 's/.*/SINGLEWORD/'
eu as altero para "SINGLEWORD"
e obtenho esse resultado.
SINGLEWORD
Agora, o que eu quero é: Como posso usar este comando (ou o seu comando de sugestão) e substituir (no lugar) meu bloco de linhas pela palavra "SINGLEWORD"? E o resultado final será como este arquivo:
My block of line starts from here
SINGLEWORD
and end to here for example.
sed
deve ser possível, mas provavelmente mais difícil de ler (Olhe para esta questão )