Aproximadamente como fazer isso:
$ sed -n -e '/Heading1/,/Heading2/ p' file.txt | grep "^ " | sed 's/^[ ]\+//g'
I am one value.
I am another value.
I am third value.
Uma versão um pouco mais condensada, faz uso do pcregrep
, que permite a correspondência multilinha:
$ pcregrep -M 'Heading1(\n|.)*Heading2' file.txt | grep "^[ ]\+"
I am one value.
I am another value.
I am third value.
Para se livrar dos espaços no início usando este método, você pode usar o recurso PCRE de grep
:
$ pcregrep -M 'Heading1(\n|.)*Heading2' a.txt | grep -oP "^[ ]{3}\K.*"
I am one value.
I am another value.
I am third value.
Finalmente, aqui está uma solução sed
e awk
.
$ sed -n -e '/Heading1/,/Heading2/ p' file.txt | awk '/^ / {sub(/^[ ]+/, ""); print}'
I am one value.
I am another value.
I am third value.