Descubra em qual linha no arquivo de texto está a palavra correspondente

2

Existe alguma maneira de descobrir em qual linha do documento de texto está alguma palavra que esteja correspondendo ao padrão, por exemplo, com grep ou algo assim. Obrigado.

    
por applenic 16.03.2015 / 00:16

2 respostas

5

Sim, é possível com a opção -n de grep .

Em man grep :

-n, --line-number
              Prefix each line of output with the 1-based line number within its input file.

Por exemplo, se você tiver um arquivo chamado file.txt tendo:

this is
foo test
and this is
bar test

Agora, a saída de grep -n "test" file.txt :

$ grep -n "test" file.txt 
2:foo test
4:bar test

Aqui 2 e 4 indicam os números de linha onde o padrão é encontrado.

    
por 16.03.2015 / 00:21
2

A abordagem grep é a mais simples, mas todas elas imprimirão o número da linha correspondente à linha pat :

  1. Perl

    perl -lne 'print $. if /pat/' file
    
  2. awk

    awk '/pat/{print NR}'
    
  3. sed

    sed -n '/pat/=' file
    
por 16.03.2015 / 13:59