Bagaimana Anda menjalankan `less` dan menjalankannya secara otomatis?

14

Saya mencoba untuk menjalankan lessdi Linux, dan saya ingin mencari sesuatu segera setelah peluncuran.

Ini pada dasarnya seperti melakukan ini:

$ less

Kemudian tekan '/', ketikkan pola pencarian seperti "^commit \w+$", lalu tekan enter, dan tekan 'n'untuk menemukan setiap hasil selanjutnya.

Saya ingin lebih sedikit diluncurkan, dan kemudian mencari pola. Tampaknya tidak ada apa pun di halaman manual tentang memulai dengan suatu pola, tetapi mungkin Anda dapat mengirimkannya perintah seperti Vim.

Neil
sumber
1
Luar biasa, letakkan ini di konfigurasi git Anda: core.pager = less -cFRX --pattern='^commit'dan Anda akan dapat langsung pergi ke komit berikutnya dengan tombol 'n'.
Neil

Jawaban:

8

Dari manhalaman:

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

Ini berfungsi seperti yang diharapkan menggunakan versi terbaru less( 436 ).

goldpseudo
sumber
17

Anda dapat menggunakan + untuk mengirim perintah sewenang-wenang. Misalnya:

less +/pattern

-p PATTERN(seperti yang diposting oleh nik) setara dengan +/PATTERN.

Matthew Flaschen
sumber
2
Saya lebih suka jawaban ini, karena lebih lengkap. Opsi +/patternini setara dengan --pattern=pattern, tetapi dapat melakukan lebih banyak, seperti untuk memulai lebih sedikit di akhir file, lakukan less +G. The +pilihan memberi Anda segala sesuatu -p|--patternyang ditambah seluruh himpunan perintah lain untuk menjalankan dalam waktu kurang, jadi saya mengatakan tidak repot-repot mengingat -pdan hanya menggunakan +/untuk mencari seperti yang Anda lakukan dari dalam kurang.
DrStrangepork
4

Maksudmu seperti?

less -p POLA nama file

Itu ada di manual.

nik
sumber
4

Sebenarnya ada dua cara untuk melakukan ini. Seperti orang lain sebutkan, Anda dapat menggunakan -p/ --patternopsi:

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

Pola Anda harus dibungkus dengan tanda kutip karena mengandung spasi.

Namun, sebenarnya ada cara kedua untuk melakukan ini:

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

Metode kedua memiliki satu keunggulan berbeda. Itu dapat digunakan dengan perintah lain yang menggunakan lebih sedikit untuk pagination !:

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

Ini secara harfiah dapat diperluas untuk mencari halaman bash man untuk semua perintah bawaan. Suatu hari saya sedikit terhanyut dan "memperbaiki" orang untuk bash builtin .

Adam Stewart
sumber
3

Memang ada sesuatu di halaman yang kurang.

Kamu bisa mencoba :

less -p<pattern>

atau

less --pattern=<patern>
Slubman
sumber
0

Pilihan lain adalah bahwa ketika Anda menjalankan lessmaka ketik &dan patternminat Anda.

Dengan cara ini Anda bisa mendapatkan hanya garis yang Anda patternminati tidak semua garis. Arti menunjukkan hanya garis yang cocok .

&/ <pattern_of_interest>
Dan Art
sumber