sed - padrão apenas em algumas linhas predefinidas

1

Eu quero usar sed para me fornecer algumas linhas de um arquivo. Eu quero extrair essas linhas apenas dentro de alguma parte do arquivo, que eu sei. Por exemplo. Eu tenho um arquivo com 100 linhas, e estou procurando por linhas na linha 10 e 30 com um padrão específico.

Minha solução atual é usar dois comandos sed : o primeiro imprime tudo entre os números de linha que tenho, por exemplo

sed -n "10,30p" target_file.file

A segunda procura dentro desse resultado com um padrão

sed -n '/pattern/p'

Então, no final, eu tenho isso:

sed -n "10,30p" target_file.file | sed -n '/pattern/p'

Existe uma maneira de fazer um comando de dois?

    
por kristian 08.06.2016 / 10:52

1 resposta

4

Você pode:

$ sed -n '10,30{
  /pattern/p
}' <file

Essa é a sintaxe padrão por enquanto. Você também pode usar:

$ sed -n '10,30{/pattern/p;}' <file

na próxima versão do POSIX.

    
por 08.06.2016 / 10:55