Como você roda 'less' e faz com que ele execute um padrão de pesquisa automaticamente?

12

Estou tentando executar less no Linux e quero que ele procure algo imediatamente após o lançamento.

É basicamente como fazer isso:

$ less

Em seguida, pressione '/' , digite um padrão de pesquisa como "^commit \w+$" , pressione enter e pressione 'n' para localizar cada resultado subsequente.

Gostaria que menos fosse lançado e, em seguida, pesquisasse um padrão. Não parece haver nada na página man sobre começar com um padrão, mas talvez você possa enviar comandos como Vim.

    
por Neil 04.08.2010 / 18:29

6 respostas

7

Da página man :

   -ppattern or --pattern=pattern
          The  -p  option  on the command line is equivalent to specifying
          +/pattern; that is, it tells less to start at the  first  occur-
          rence of pattern in the file.

Isso funciona como esperado usando a versão mais recente do less ( 436 ).

    
por 04.08.2010 / 18:41
16

Você pode usar + para enviar comandos arbitrários. Por exemplo:

less +/pattern

-p PATTERN (como postado por nik) é equivalente a +/PATTERN .

    
por 04.08.2010 / 18:39
4

Você quer dizer?

less -p PATTERN filename

Isso está no manual.

    
por 04.08.2010 / 18:36
4

Na verdade, existem duas maneiras de fazer isso. Como todos os outros usuários mencionaram, você pode usar as opções -p / --pattern :

less -p<pattern>
less --pattern=<pattern>

Seu padrão terá que ser colocado entre aspas, pois contém um espaço.

No entanto, existe uma segunda maneira de fazer isso:

LESS=-p<pattern> less
LESS=--pattern=<pattern> less

O segundo método tem uma vantagem distinta. Pode ser usado com outros comandos que usam menos para paginação!:

LESS=-p"^       read \[" man bash

Isso literalmente pode ser estendido para procurar na página man bash todos os comandos internos. Eu fiquei um pouco empolgado um dia e homem "corrigido" para bash builtins .

    
por 14.04.2016 / 21:34
3

Existe algo na menos manpage.

Você pode tentar:

less -p<pattern>

ou

less --pattern=<patern>
    
por 04.08.2010 / 18:39
0

Outra opção é que, quando você executar o less , digite & e pattern do seu interesse.

Dessa forma, você só pode obter as linhas que possuem pattern de interesse não de todas as linhas. Significado mostra apenas as linhas correspondentes .

&/ <pattern_of_interest>
    
por 08.11.2017 / 16:50

Tags