Grep para um padrão na linha

0

Como posso encontrar um padrão específico de números como

1000010000000

em um arquivo inteiro - a linha deve ter esses números no começo, não em outro lugar ...

    
por user3069326 05.06.2015 / 07:48

3 respostas

1

grep '^1000010000000' filename

O cursor significa início da linha.

Editar:
Acabei de encontrar um tutorial útil para esse tipo de coisa aqui .

    
por Stephen 05.06.2015 / 07:52
1

Você pode fazer

sed -n '/^1000010000000/p' file

Explicação

O -n significa suprimir a saída normal, portanto, apenas imprimimos as linhas que desejamos.

O /^1000010000000/ significa corresponder à linha com o padrão no início da linha. O ^ é uma âncora que significa o início de uma linha.

O p imprime a linha correspondente.

    
por bkmoney 05.06.2015 / 07:52
1

Para uma pesquisa com essa string exata 1000010000000 no início da linha, a

grep "^1000010000000"

está ok.

Mais flexível é um padrão como este (como exemplo):

grep -P "^1[0]{4,4}1[0]{7,7}" <your_file>

Explicação:

  • ^1[0]{4,4}1[0]{7,7}

    • ^ afirma a posição no início da string
    • 1 corresponde ao caractere 1 literalmente
    • [0]{4,4} corresponde a um único caractere presente na lista abaixo
      • Quantificador: {4,4} exatamente 4 vezes
      • 0 o caractere literal 0
    • 1 corresponde ao caractere 1 literalmente
    • [0]{7,7} corresponde a um único caractere presente na lista abaixo
      • Quantificador: {7,7} exatamente 7 vezes
      • 0 o caractere literal 0
por A.B. 05.06.2015 / 08:15