Bagaimana cara mendapatkan paragraf untuk opsi perintah tertentu segera?

8

Sebagai contoh, alih-alih seluruh manual apt-getsaya ingin langsung ke -fopsi dari terminal prompt, tanpa menggunakan pencarian melalui halaman manual.

RS
sumber
2
Kemungkinan duplikat dari Bagaimana cara mencari `!` (Tanda seru) di halaman manual?
M. Becerra
1
@ M. Becerra pertanyaan saya lebih luas.
RS
@Becerra Tidak hanya itu pertanyaan yang lebih luas, tetapi juga pertanyaan yang berbeda, karena RS ingin mengembalikan seluruh paragraf opsi dalam hasil man, alih-alih mengembalikan daftar campuran baris terpisah.
karel

Jawaban:

6

Pager default yang digunakan oleh manadalah less. Anda dapat melewati pola pencarian ERE (Extended Regular Expression) yang lessmengerti secara langsung melalui LESSvariabel lingkungan, jika Anda hal-hal berikut harus dilakukan:

LESS='+/-f' man apt-get

Ini persis sama dengan melewati /-fsetelah melakukan man apt-get.

Sekarang, ini akan menyoroti semua -fs di manhalaman, untuk melompat langsung ke yang diinginkan yaitu opsi -f, Anda dapat memanfaatkan ERE untuk mencocokkan hanya garis yang dimulai dengan spasi / tab, diikuti oleh -f:

LESS='+/^[[:blank:]]+-f' man apt-get

Meskipun ini akan dilakukan di sini tetapi mungkin masih tidak tepat untuk semua halaman, karena ini akan cocok dengan apa pun yang dimulai dengan -fspasi / tab awal. Tweak polanya sedikit untuk memenuhi yang Anda butuhkan dalam kasus-kasus itu.

Anda dapat membuat fungsi kecil untuk meneruskan pola pencarian dan manhalaman yang akan dicari sebagai argumen, jika Anda sering melakukannya.

heemayl
sumber
9

Ketik garis miring, hal yang Anda cari, lalu tekan enter. Anda akan melompat ke kejadian pertama. Tekan Nuntuk pindah ke kejadian berikutnya dan Buntuk kembali. Jadi, dalam hal ini:

/-f <enter>
James
sumber
4
Coba tambahkan beberapa spasi sebelum tanda hubung. Sebagian besar waktu, pilihan yang menjorok dan yang harus melompat tepat ke pilihan: / -f. Ini harus memotong setiap penggunaan inline dari -f.
transistor1
1

Gunakan seduntuk menunjukkan seluruh paragraf opsi yang dimulai dengan tanda hubung. Untuk segera menampilkan seluruh paragraf -fopsi dengan menjalankan satu perintah, gunakan:

man apt-get | sed -n '/-f,/,/^$/p'
   -f-,--no-f, -f=no or several other variations.

   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken.  

Ini mengembalikan seluruh paragraf untuk -fopsi dalam man apt-gettetapi perintah di atas dapat ditingkatkan dengan menghilangkan koma setelah -funtuk membuatnya lebih bermanfaat secara umum sebagai berikut:

man apt-get | sed -n '/-f/,/^$/p'

Ini menghasilkan beberapa paragraf, yang sebagian besar tidak ingin Anda baca. Dengan membaca baris pertama dari beberapa paragraf, Anda dapat melihat bahwa Anda hanya ingin menampilkan paragraf yang berisi -f, --fix-brokenopsi. Lakukan ini sebagai berikut:

man apt-get | sed -n '/--fix-broken/,/^$/p'
   -f, --fix-broken
       Fix; attempt to correct a system with broken dependencies in place.
       This option, when used with install/remove, can omit any packages
       to permit APT to deduce a likely solution. If packages are
       specified, these have to completely correct the problem. The option
       is sometimes necessary when running APT for the first time; APT
       itself does not allow broken package dependencies to exist on a
       system. It is possible that a system's dependency structure can be
       so corrupt as to require manual intervention (which usually means
       using dpkg --remove to eliminate some of the offending packages).
       Use of this option together with -m may produce an error in some
       situations. Configuration Item: APT::Get::Fix-Broken. 

Ini hanya mengembalikan output yang ingin Anda baca. Metode ini berfungsi dengan opsi lain yang dimulai dengan tanda hubung, dan juga berfungsi secara umum untuk mencari opsi yang dimulai dengan tanda hubung pada perintah lain selain apt-getjuga.

Menampilkan informasi tambahan dengan sed

Jika deskripsi satu paragraf tidak memberikan informasi yang cukup, perintah berikut akan menunjukkan paragraf pertama sama dengan perintah sebelumnya dan paragraf berikutnya setelah itu juga.

LESS='+/^[[:space:]]*-f' man apt-get  

Hasil dari perintah ini menunjukkan bahwa paragraf berikutnya tidak terlalu menarik, tetapi untuk beberapa opsi paragraf berikutnya juga menarik. Itu sebabnya ini juga perintah yang berguna untuk diketahui.

karel
sumber