Bir komutun sadece belirtilen seçeneği için 'man` belgesini görmenin bir yolu var mı


24

Eğer anlamını bilmek wget -bistersem, kullanım kılavuzunu görüyorum man wget, sonra -bseçeneği araştırın .

   -b
   --background
       Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

Sonuç gibi bir komutla elde etmek istiyorum man wget -b. (Elbette bu işe yaramaz.)

Bunu mümkün kılmanın benzer bir yolu var mı?


wget -h | grep '\ -b'
Faheem Mitha

Yanıtlar:


5

Manpage'i yeniden yönlendirebilir awkve parçaya atabilirsiniz :

man wget | awk '/^ *-b *.*$/,/^$/{print}'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is redirected to wget-log.

Bu kısım -bboş ve boş bir çizgi arasındaki her şeydir .


1
{print}atlanabilir
Kostas

Teşekkürler, kullanmaya çalıştım GNU Awk 4.0.1(Ubuntu), GNU Awk 3.1.7(CentOS)ve awk version 20070501(OS X), ancak yalnızca işe yarar 4.0.1.
Ütülerve

1
.*$ihmal edilebilir
Walter Tross,

22

lessAdam için çağrı cihazı kullanıyorsanız deneyebilirsiniz

LESS="+/^\s+-b" man wget

nerede

  1. +lessAçıldıktan sonra bir sonraki işlemi gerçekleştirmek için sembol
  2. / aramaya başlama komutu
  3. ^\s+-bregexp -bsatırın başından itibaren eşleşecek

İsterseniz kabuk için uygun işlevi düzenleyebilirsiniz.

function rman {
#USAGE: rman programm.name option.to.search (with "-" symbol)
LESS="+/^\s+$2" man "$1"
}

ve ~/.bashrcörneğin içine ekleyin .


Bu benim için işe yaramıyor, bence çok satırlı eşleşmeyecek çünkü
rb612

14

Çalıştırdığınızda man command, tuşuna basıp /aramak için düz metni girebilirsiniz. Örneğin, yazın /-bve -bmetnin ilk örneğine atlayacaktır .


@ drewbenn Ah, güzel. Devam etmek için her zaman sadece /+ enter'a bastım .
kabarık

10

Bunu denilen yapmak için küçük bir senaryo yazdı diye örn he wget -b.

Temel strateji şudur: seçeneği (örn. -b) Bir satırdaki ilk kelime olarak arayın , daha sonra bir sonraki başlığa kadar veya eşleşen girintili bir sonraki satırı yazdırın.

Bunu kullanamıyorsanız, temelini kullanarak benzer bir şey elde edebilirsiniz sed;

man wget | sed -ne '/^  *-b/,/^$/p'

Ayrıca desc betiğiniz çok faydalıdır.
Pandya

Sadece artı / heolarak olduğu gibi yeniden adlandırmaya karar verdim . short helpheman
Mikel

Yeni örnekle çalışmak üzere güncellendi wget -b,.
Mikel

3

Ben bağlandığından emin aşağıdaki komut dosyasını kullanın explainshell.com . Bir süre önce reddit'ten kopyaladım:

#!/bin/bash
cmd=$1
shift
args=$*
args=${args/ /+}
w3m -dump "http://explainshell.com/explain/$cmd?args=$args"

Adını verdim rmanve içine koydum $PATH. Kullanımı wget -b:

$ rman wget -b    
[logo]

  • about
  •
  • [                    ]

wget(1) -b

The non-interactive network downloader

-b
--background
    Go to background immediately after startup.  If no output file is specified via the -o, output is
    redirected to wget-log.

source manpages: wget

Bu senaryoyu biraz başında çöp göstermemek için ayarlayabilirsin.

EDIT: Buradan aldım . Yazara teşekkürler!


3
Bunun potansiyel olarak makineye kurulu olanlardan farklı komutların uygulanmasını / versiyonunu dökümante ettiğini belirtmek önemlidir.
Stéphane Chazelas

Ayrıca, kodda kaçma ve kötü alıntı yoktur.
l0b0

Evet, bunu vurgulamalı mıyım diye merak ettim. Bununla birlikte, eğer belirli bir seçenek programın bir lezzetinde bir şey ifade ediyorsa, genellikle başka bir lezzet için aynı anlamına gelir. Daha sık görülen, bazı seçeneklerin eksik olmasıdır. Yine, bu sadece benim deneyimim.
Arkadiusz Drabczyk

@ l0b0: Bu kodu ben
yazmadım

0

Alternatif olarak, eğer grepGNU'nuz ise grep, aşağıdaki gibi kullanabilirsiniz:

man wget | grep -EA3 '^ *-b'

İçinde -A(bir GNU uzantısı) eşleşen satırlardan sonra (burada 3) satır sayısını yazdırmak içindir . tam bir açıklama için uygun numarayı kullanabilirsiniz.

Örnek:

$ man wget | grep -EA3 '^ *-b'
       -b
       --background
           Go to background immediately after startup.  If no output file is specified via the -o, output is
           redirected to wget-log.

$ man grep | grep -EA3 '^ *-A'
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing a  group  separator
              (--)  between  contiguous groups of matches.  With the -o or --only-matching option, this has no effect
              and a warning is given.

0

Komut satırı deneyimi için @Costas sürümünü kullanın.

Hafif sürüm maniçin, aynı metin arabirimini kullanır less. Bu, aynı komutları kullanabileceğiniz anlamına gelir less.

# open manual to wget
man wget

# search for -b
/-b

# use "n" to navigate to next version of -b until you find what you want
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.