क्या केवल कमांड के निर्दिष्ट विकल्प के लिए `man` दस्तावेज़ को देखने का तरीका है


24

अगर मुझे इसका मतलब जानना wget -bहै man wget, तो मैं मैनुअल देखता हूं , फिर -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 wget -b। (बेशक यह काम नहीं करता है।)

क्या इसे संभव बनाने का एक समान तरीका है?


wget -h | grep '\ -b'
फहीम मीठा

जवाबों:


5

आप इस पृष्ठ को मेन्यू को पुनर्निर्देशित कर सकते हैं awkऔर भाग को निकाल सकते हैं :

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.

वह हिस्सा वह सब कुछ है जो एक -bखाली रेखा के बीच है ।


1
{print}छोड़ा जा सकता है
कोस्टास

धन्यवाद, मैंने उपयोग करने की कोशिश की GNU Awk 4.0.1(Ubuntu), GNU Awk 3.1.7(CentOS)और awk version 20070501(OS X), लेकिन केवल साथ काम करता है 4.0.1
ironsand

1
.*$छोड़ा जा सकता है
वाल्टर ट्रॉस

22

यदि आप lessआदमी के लिए पेजर के रूप में उपयोग करते हैं तो आप कोशिश कर सकते हैं

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

कहा पे

  1. +lessखोलने के बाद अगले ऑपरेशन को निष्पादित करने के लिए प्रतीक
  2. / खोज शुरू करने की आज्ञा
  3. ^\s+-b-bलाइन की शुरुआत से मैच करने के लिए regexp

इसलिए यदि आप चाहें तो आप शेल के लिए उपयुक्त फ़ंक्शन की व्यवस्था कर सकते हैं

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

और ~/.bashrcउदाहरण के लिए इसे जोड़ें ।


यह मेरे लिए काम नहीं करता है, मुझे लगता है क्योंकि यह बहु-मिलान मिलान नहीं करेगा
rb612

14

जब आप चलाते हैं man commandतो आप दबा सकते हैं /और फिर खोज करने के लिए सादे पाठ में प्रवेश कर सकते हैं । उदाहरण के लिए, टाइप करें /-bऔर यह पहली बार कूद जाएगा-b पाठ में ।


@drewbenn ओह, अच्छा है। मैंने हमेशा बस /जारी रखने के लिए + दबाया है ।
शराबी

10

मैंने ऐसा करने के लिए एक छोटी सी स्क्रिप्ट लिखी , जैसे कि उन्होंनेhe wget -b

मूल रणनीति है: विकल्प की खोज (जैसे -b ) एक लाइन पर पहले शब्द के रूप में, फिर अगले हेडर तक प्रिंट करें, या मेल खाने वाले इंडेंटेशन के साथ अगली पंक्ति।

यदि आप इसका उपयोग नहीं कर सकते हैं, तो आप मूल sed, जैसे, का उपयोग करके कुछ समान प्राप्त कर सकते हैं

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

साथ ही आपकी desc script बहुत मददगार है।
पंड्या 7

बस he, जैसा कि short help, प्लस he/ में , इसका नाम बदलने का फैसला किया man
मिकेल

, नए उदाहरण के साथ काम करने के लिए अपडेट किया गया wget -b
मिकेल

3

मैं निम्न स्क्रिप्ट है कि करने के लिए जोड़ता है का उपयोग explainshell.com । मैंने कुछ समय पहले इसे reddit से कॉपी किया था:

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

मैंने उसे नाम दिया rmanऔर अपने अंदर डाल लिया $PATH। के लिए उपयोग 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

आप शुरुआत में कचरा नहीं दिखाने के लिए इस स्क्रिप्ट को थोड़ा मोड़ सकते हैं।

संपादित करें: मैं इसे यहाँ से मिला है । लेखक को धन्यवाद!


3
यह नोट करना महत्वपूर्ण है कि यह संभावित रूप से मशीन पर स्थापित उन लोगों से आदेशों के एक अलग कार्यान्वयन / संस्करण का दस्तावेजीकरण करता है।
स्टीफन चेजलस

इसके अलावा, कोड में कोई भागने और खराब उद्धरण नहीं है।
l0b0

हां, मुझे आश्चर्य है कि अगर मुझे इस पर जोर देना चाहिए। हालाँकि, यदि किसी विशेष विकल्प का मतलब प्रोग्राम के एक फ्लेवर में कुछ है तो इसका मतलब आमतौर पर दूसरे फ्लेवर में भी होता है। अधिक बार क्या होता है कि कुछ विकल्प गायब हैं। फिर, यह सिर्फ मेरा अनुभव है।
अरकादिउज़ ड्रब्ज़क

@ l0b0: मैंने यह कोड नहीं लिखा है, मैं पहली बार में बैश का उपयोग नहीं
करूंगा

0

वैकल्पिक रूप से, यदि आपका grepGNU है grep, तो आप इसका उपयोग इस प्रकार कर सकते हैं:

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

जिसमें -A(GNU एक्सटेंशन) लाइनों के मिलान के बाद (यहां 3) प्रिंट संख्या के लिए है । आप पूर्ण विवरण के लिए उपयुक्त संख्या का उपयोग कर सकते हैं।

उदाहरण:

$ 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

कमांड लाइन अनुभव के लिए, @ कोस्टस संस्करण का उपयोग करें।

एक हल्के वजन संस्करण के लिए, manउसी पाठ इंटरफ़ेस का उपयोग करता है जैसा कि less। इसका मतलब है कि आप उसी कमांड का उपयोग कर सकते हैं जैसे कि 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.