Estou tentando descobrir um comando/script awk para extrair um bloco de texto de um arquivo grande. A subseção do arquivo em que estou interessado é esta:
Board Info: #512
Manufacturer: "Dell Inc."
Product: "0X3D66"
Version: "A02"
Serial: "..CN7016343F00IE."
Chassis Info: #768
As linhas Board Info e Chassis Info têm 2 espaços à esquerda, enquanto o bloco recuado tem 4. Eu gostaria de não presumir que a linha final começa com Chassis Info (pode ser outra coisa) e apenas confiar em chegar à próxima linha começando com 2 espaços.
Esse:
awk '/^\s{2}Board Info/,/^\s{2}[^B ]/' dump.txt
resolve esta instância específica, mas não funcionará se, em vez de 'Informações do chassi', a linha do bloco final começar com a letra B (por exemplo, BOM).
Se eu usar:
awk '/^\s{2}Board Info/,/^\s{2}\S*/' dump.txt
O padrão final também corresponde à linha "Informações do Quadro", então eu obtenho apenas essa linha. Como obtenho esse bloco recuado (4 espaços à esquerda) sem codificar o bloco final (como acima) e depender do padrão final ser "a próxima linha que começa com exatamente 2 espaços à esquerda"?