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


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

No 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'

4


origem




Respostas:


Endereços em sed pode ser números de linhas ou padrões. Tente isto:

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

Se o padrão contiver /, você pode escapar com um \. Por exemplo, para procurar 16/30 ao invés de 16:30, tente isto:

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

7



E se eu precisasse procurar 16/30? Não sei como modificar a sintaxe neste caso. Obrigado! - barrrista
@barrrista Eu editei minha resposta para mostrar como escapar do personagem com uma barra invertida. Espero que isto ajude. - Nicole Hamilton


Use uma expressão regular no endereço:

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

ou

sed '/^16:30/,$!d'

5