Isso deve funcionar. Adicione seu nome de arquivo após este comando:
sed -n '
/URL:/{
:addanotherrow
N
/-\{50,\}/bmatchandprint
baddanotherrow
:matchandprint
/Name(s):[^\n]*\n[^-\n]*\n[^-]/p
}
'
Algumas explicações:
- the sed parameter "-n" prevents automatic printing of pattern space - the matched patterns are printed with the "p" at the end of the last row of the statements inside the brackets {}
- labels are marked with a leading ":", so ":addanotherrow" and ":matchandprint" are jumping points for the "b" statements
- b followed by a label is a command to branch to that label (something like a GOTO)
- N appends the next line of input into the pattern space
- lines starting with "/" just proof the pattern space against a regular expression, when the regex fits, the following command is executed, as already mentioned the b branches and the p prints the pattern space
Em outras palavras: a string "URL:" é pesquisada, a partir desse ponto, mais linhas são incluídas até que uma linha (pelo menos 50 hífens em uma linha) seja encontrada. Depois disso, as linhas reunidas ("espaço de padrão") são examinadas. Somente quando um "Nome (s):" com mais de uma linha (que não está começando com um hífen) for encontrado, o espaço padrão será impresso.
Espero que ajude: -)