SED: Como posso imprimir todas as linhas após a primeira ocorrência da string usando Sed?

4

Eu tenho um arquivo com um formato semelhante ...

16:28 asdfasdf
16:29 4398upte
16:30 34liuthr
16:31 34tertio

Como posso usar o SED para imprimir todas as linhas incluindo e depois da linha com "16:30"?

O resultado seria ...

16:30 34liuthr
16:31 34tertio

Neste momento, estou usando o sed da seguinte forma, mas preciso encontrar manualmente o número da linha da primeira linha, por exemplo: "562697":

sed -n '562697,$p'
    
por barrrista 06.03.2013 / 23:42

2 respostas

7

Os endereços em sed podem ser números de linhas ou padrões. Tente isto:

sed -n '/16:30/,$p'

Se o padrão contiver um / , você poderá escapar com um \ . Por exemplo, para procurar 16/30 em vez de 16:30 , tente isto:

sed -n '/16\/30/,$p'
    
por 06.03.2013 / 23:48
5

Use uma expressão regular no endereço:

sed -n '/^16:30/,$p'

ou

sed '/^16:30/,$!d'
    
por 06.03.2013 / 23:47