'ack' não mostra números de linha em um único arquivo

15

Estou usando o ack para procurar uma string. Quando eu o executo sem um argumento de arquivo, recebo números de linha:

$> ack function
themes/README.txt
7:Drupal's sub-theme functionality to ensure easy maintenance and upgrades.

sites/default/default.services.yml
48:    # - The dump() function can be used in Twig templates to output information

...

Mas quando tento especificar um arquivo, não recebo números de linha.

$> ack function themes/README.txt
Drupal's sub-theme functionality to ensure easy maintenance and upgrades.

Eu fiz algumas pesquisas para um switch, mas não encontrei resultados. Como obtenho que o ack me mostre números de linha em resultados de um único arquivo?

    
por user394 04.05.2015 / 19:13

3 respostas

19

Quando você não fornecer nenhum arquivo, ack procurará todos os arquivos no diretório atual e nos subdiretórios. Se um arquivo contiver um padrão correspondente, ack imprime esse nome de arquivo, o número da linha e a linha que corresponde ao padrão.

Esse comportamento não se aplica a um arquivo (consulte a documentação da ack , pesquise a opção -H ).

Já que ack não tem -n opção line grep , que imprimirá a linha com seu número de linha relativo, você tem duas opções para contornar esse problema.

Forçando ack print filename com -H :

ack -H pattern file

ou passando /dev/null como o segundo arquivo:

ack pattern file /dev/null
    
por 04.05.2015 / 19:27
7

Você pode tentar com a opção --with-filename :

ack --with-filename 'function' themes/README.txt

Esta questão é levantada como bug e o problema foi movido aqui .

    
por 04.05.2015 / 19:23
5

Deve haver uma opção para isso. Mas se não houver, você pode enganar ack pensando que há dois arquivos para pesquisar, passando um /dev/null extra na linha de comando:

ack function themes/README.txt /dev/null

Em uma nota lateral, o mesmo truque pode ser usado para fazer com que grep(1) mostre um nome de arquivo mesmo quando você está pesquisando um único arquivo:

grep function themes/README.txt /dev/null
    
por 04.05.2015 / 19:26

Tags