Come si esegue `less` e si esegue automaticamente un modello di ricerca?


14

Sto cercando di eseguire lessin Linux e voglio che cerchi qualcosa immediatamente dopo il lancio.

Fondamentalmente è come fare questo:

$ less

Quindi premere '/', digitare un modello di ricerca come "^commit \w+$", quindi premere Invio e premere 'n'per trovare ogni risultato successivo.

Mi piacerebbe lanciarne di meno, quindi cercare un modello. Non sembra esserci nulla nella pagina man che inizi con uno schema, ma forse puoi inviargli comandi come Vim.


1
Fantastico, mettilo nel tuo git config: core.pager = less -cFRX --pattern='^commit'e sarai in grado di passare al prossimo commit con il tasto 'n' subito.
Neil,

Risposte:


8

Dalla manpagina:

   -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.

Funziona come previsto utilizzando l'ultima versione di less( 436 ).


17

Puoi usare + per inviare comandi arbitrari. Per esempio:

less +/pattern

-p PATTERN(pubblicato da nik) equivale a +/PATTERN.


2
Preferisco questa risposta, perché è più completa. L'opzione +/patternè equivalente a --pattern=pattern, ma può fare di più, ad esempio per iniziare di meno alla fine di un file less +G. L' +opzione ti dà tutto ciò che -p|--patternfa, più l'intero set di altri comandi da eseguire in meno, quindi dico non preoccuparti di ricordare -pe usa solo +/per cercare come faresti da dentro meno.
DrStrangepork,

4

Intendi come?

less -p Nome file PATTERN

Questo è nel manuale.


4

In realtà ci sono due modi per farlo. Come tutti gli altri hanno menzionato, puoi usare le opzioni -p/ --pattern:

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

Il modello dovrà essere racchiuso tra virgolette poiché contiene uno spazio.

Tuttavia, esiste in realtà un secondo modo per farlo:

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

Il secondo metodo ha un netto vantaggio. Può essere usato con altri comandi che usano meno per l'impaginazione !:

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

Questo può letteralmente essere esteso per cercare nella pagina man di bash tutti i comandi integrati. Un giorno mi sono lasciato trasportare un po 'e ho "riparato" l'uomo per i buildh bash .


3

C'è davvero qualcosa nella meno manpage.

Puoi provare:

less -p<pattern>

o

less --pattern=<patern>

0

Un'altra opzione è che quando esegui il lesstipo &e quindi quello patterndi tuo interesse.

In questo modo puoi ottenere solo le linee che ti patterninteressano, non tutte le linee. Il significato mostra solo le linee corrispondenti .

&/ <pattern_of_interest>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.