Usando sed para extrair texto entre duas strings [duplicado]

0

Eu tenho que usar o gerador de HTML AdaBrowse para criar um monte de arquivos formatados. Infelizmente, todos esses arquivos contêm cabeçalhos antes de cada função ou procedimento que não segue forma consistente de formatação.

-- Example 1 - new
--##################################################
-- Name: Example
-- Version: 1.0
-- Description: Shows Example
-- a 12-bit field containing the an example.
-- Inputs: AN_Example.
-- Outputs: None
-- Return Values: Examples
-- Callers:
--
-- Callees:
--
----------------------------------------------------------

-- Example 2 - new
--##################################################
-- Name: Example
-- Version: 1.0
-- Description: 
-- Shows More Examples
-- in a 12-bit field containing the an example.
-- 
-- Inputs: AN_Example.
-- Outputs: None
-- Return Values: Examples
-- Callers:
--
-- Callees:
--
----------------------------------------------------------

AdaBrowse tem uma ótima opção de formatação usando sed, mas não consigo extrair apenas as linhas de "- Description:" para (e não incluindo) "- Inputs:"

O mais próximo que eu cheguei foi com o comando:

sed -r 's/.*(Description:[^Inputs:]*).*//g

Mas agarra tudo. Como posso extrair as linhas mencionadas?

    
por Arban Nichols 09.06.2016 / 14:20

1 resposta

1

Eu não usei o AdaBrowse, mas

sed '/-- Description:/,/-- Inputs:/!d;/-- Inputs:/d'

funciona com seu exemplo, então você pode tentar.

    
por 09.06.2016 / 14:59