มีวิธีดูเอกสาร `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'
Faheem Mitha

คำตอบ:


5

คุณสามารถเปลี่ยนเส้นทาง manpage ไป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.

ส่วนนั้นคือทุกสิ่งที่อยู่ระหว่าง a -bและบรรทัดว่าง


1
{print}สามารถละเว้น
Costas

ขอบคุณฉันพยายามที่จะใช้กับGNU Awk 4.0.1(Ubuntu), GNU Awk 3.1.7(CentOS)และแต่ทำงานได้เฉพาะกับawk version 20070501(OS X) 4.0.1
เตารีดและ

1
.*$สามารถละเว้นได้เช่นกัน
Walter Tross

22

ถ้าคุณใช้lessเป็นเพจเจอร์สำหรับผู้ชายคุณสามารถลอง

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

ที่ไหน

  1. +สัญลักษณ์ที่จะดำเนินการต่อไปหลังจากที่lessได้เปิด
  2. / คำสั่งเพื่อเริ่มการค้นหา
  3. ^\s+-bregexp ให้ตรง-bจากจุดเริ่มต้นของบรรทัด

ดังนั้นถ้าคุณชอบคุณสามารถจัดเรียงฟังก์ชัน apropriate สำหรับเชลล์

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

และเพิ่มลงใน~/.bashrcตัวอย่าง


สิ่งนี้ไม่ได้ผลสำหรับฉันฉันคิดว่าเพราะจะไม่ทำการจับคู่หลายระดับ
rb612

14

เมื่อคุณเรียกใช้man commandคุณสามารถกด/และจากนั้นป้อนข้อความธรรมดาเพื่อค้นหา ตัวอย่างเช่นพิมพ์/-bแล้วมันจะข้ามไปที่อินสแตนซ์แรกของ-bข้อความ


@drewbenn โอ้ดี ฉันเพิ่งกด/+ Enter เพื่อดำเนินการต่อ
ปุย

10

ผมเขียนสคริปต์เล็ก ๆ ที่จะทำเช่นนี้เรียกว่าเขาhe wget -bเช่น

กลยุทธ์พื้นฐานคือ: ค้นหาตัวเลือก (เช่น-b) เป็นคำแรกในบรรทัดจากนั้นพิมพ์จนกระทั่งส่วนหัวถัดไปหรือบรรทัดถัดไปที่มีการเยื้องการจับคู่

หากคุณไม่สามารถใช้สิ่งนั้นได้คุณสามารถทำสิ่งที่คล้ายกันโดยใช้พื้นฐานsedเช่น

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

สคริปต์ที่สืบทอดของคุณก็มีประโยชน์มากเช่นกัน
Pandya

ก็ตัดสินใจที่จะเปลี่ยนชื่อไปheในขณะที่short helpบวก/he man
Mikel

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
เป็นสิ่งสำคัญที่จะต้องทราบว่านี่อาจเป็นเอกสารการนำไปปฏิบัติ / คำสั่งต่าง ๆ จากสิ่งที่ติดตั้งไว้ในเครื่อง
Stéphane Chazelas

นอกจากนี้ยังไม่มีการหลบหนีและการอ้างอิงที่ไม่ดีในรหัส
l0b0

ใช่ฉันสงสัยว่าฉันควรเน้นที่ อย่างไรก็ตามถ้าตัวเลือกเฉพาะหมายถึงบางสิ่งบางอย่างในรสชาติหนึ่งของโปรแกรมมันมักจะหมายถึงสิ่งเดียวกันในรสชาติอื่น สิ่งที่บ่อยขึ้นคือตัวเลือกบางอย่างหายไป นี่เป็นเพียงประสบการณ์ของฉันอีกครั้ง
Arkadiusz Drabczyk

@ l0b0: ฉันไม่ได้เขียนรหัสนี้ฉันจะไม่ใช้ bash ในตอนแรก
Arkadiusz Drabczyk

0

อีกทางเลือกหนึ่งถ้าคุณgrepเป็น GNU 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

สำหรับประสบการณ์บรรทัดคำสั่งให้ใช้เวอร์ชัน @Costas

สำหรับรุ่นน้ำหนักเบาใช้อินเตอร์เฟซที่เป็นข้อความเดียวกันman ซึ่งหมายความว่าคุณสามารถใช้คำสั่งเช่นเดียวกับlessless

# 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.