จะรับย่อหน้าสำหรับตัวเลือกคำสั่งได้อย่างไร


8

ตัวอย่างเช่นแทนที่จะใช้ทั้งคู่มือของapt-getฉันต้องการข้ามไปที่-fตัวเลือกจาก terminal prompt ทันทีโดยไม่ต้องใช้การค้นหาผ่าน manpage



1
วิสัย คำถามของฉันกว้างขึ้น
RS

@Becerra ไม่เพียง แต่เป็นคำถามที่กว้างขึ้น แต่ยังเป็นคำถามที่แตกต่างกันเนื่องจาก RS ต้องการส่งคืนทั้งย่อหน้าของตัวเลือกในผลลัพธ์manแทนที่จะส่งคืนรายการที่แยกกัน
karel

คำตอบ:


6

เพจเจอร์เริ่มต้นใช้งานโดยมีman lessคุณสามารถส่งผ่านรูปแบบการค้นหา ERE (Extended Regular Expression) ที่lessเข้าใจได้โดยตรงผ่านLESSตัวแปรสภาพแวดล้อมในกรณีที่คุณควรทำสิ่งต่อไปนี้:

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

ตรงนี้เป็นเช่นเดียวกับที่ผ่านหลังจากที่ทำ/-fman apt-get

ตอนนี้สิ่งนี้จะเน้นให้เห็นทั้งหมด-fในmanหน้าเพื่อข้ามไปยังตัวเลือกที่ต้องการเช่น-fคุณสามารถใช้ ERE เพื่อจับคู่เฉพาะบรรทัดที่ขึ้นต้นด้วยช่องว่าง / แท็บตามด้วย-f:

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

แม้ว่าสิ่งนี้จะทำที่นี่ แต่ก็อาจไม่แม่นยำสำหรับทุกหน้าเนื่องจากจะตรงกับทุกอย่างที่ขึ้นต้นด้วย-fเว้นวรรค / แท็บเริ่มต้น ปรับแต่งรูปแบบเล็กน้อยเพื่อตอบสนองความต้องการของคุณในกรณีเหล่านั้น

คุณสามารถสร้างฟังก์ชั่นเล็ก ๆ เพื่อส่งผ่านรูปแบบการค้นหาและmanหน้าเพื่อค้นหาเป็นอาร์กิวเมนต์หากคุณทำเช่นนี้บ่อยครั้ง


9

พิมพ์เครื่องหมายสแลชสิ่งที่คุณกำลังค้นหาแล้วกด Enter คุณจะข้ามไปที่เหตุการณ์แรก กดNเพื่อย้ายไปยังเหตุการณ์ถัดไปและBเพื่อย้อนกลับ ดังนั้นในกรณีนี้:

/-f <enter>

4
ลองเพิ่มช่องว่างสองสามหน้าก่อนขีดกลาง / -fเวลาส่วนใหญ่ของตัวเลือกที่จะเยื้องและที่ควรจะกระโดดไปที่ตัวเลือกนี้: -fนี้ควรหลีกเลี่ยงการใช้งานแบบอินไลน์ใด ๆ
transistor1

1

ใช้sedเพื่อแสดงย่อหน้าทั้งหมดของตัวเลือกที่ขึ้นต้นด้วยยัติภังค์ หากต้องการแสดงทั้งย่อหน้าของ-fตัวเลือกในทันทีโดยใช้คำสั่งเดียวให้ใช้:

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.  

สิ่งนี้จะคืนค่าย่อหน้าทั้งหมดสำหรับ-fตัวเลือกในมนุษย์apt-getแต่คำสั่งด้านบนสามารถปรับปรุงได้โดยกำจัดเครื่องหมายจุลภาคหลังจาก-fเพื่อให้เป็นประโยชน์โดยทั่วไปดังนี้:

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

ส่งคืนหลายย่อหน้าซึ่งส่วนใหญ่คุณไม่ต้องการอ่าน โดยการอ่านบรรทัดแรกของหลายย่อหน้าคุณจะเห็นว่าคุณต้องการแสดงเฉพาะย่อหน้าที่มี-f, --fix-brokenตัวเลือก ทำสิ่งนี้ดังนี้:

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. 

ส่งคืนเฉพาะเอาต์พุตที่คุณต้องการอ่าน วิธีนี้ใช้ได้กับตัวเลือกอื่น ๆ ที่ขึ้นต้นด้วยยัติภังค์และยังใช้งานได้โดยทั่วไปสำหรับการค้นหาตัวเลือกที่ขึ้นต้นด้วยยัติภังค์ในคำสั่งอื่นนอกเหนือจากนี้apt-getเช่นกัน

แสดงข้อมูลเพิ่มเติมด้วย sed

หากคำอธิบายวรรคหนึ่งให้ข้อมูลไม่เพียงพอคำสั่งต่อไปนี้จะแสดงย่อหน้าแรกเหมือนกับคำสั่งก่อนหน้าและย่อหน้าถัดไปหลังจากนั้น

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

ผลลัพธ์ของคำสั่งนี้แสดงให้เห็นว่าย่อหน้าถัดไปไม่น่าสนใจมาก แต่สำหรับบางตัวเลือกย่อหน้าถัดไปก็น่าสนใจเช่นกัน นั่นคือเหตุผลที่นี่เป็นคำสั่งที่มีประโยชน์ที่จะรู้

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