ฉันจะค้นหา `! '(เครื่องหมายอัศเจรีย์) ในหน้าคู่มือได้อย่างไร


13

ฉันต้องการที่จะได้รับคำอธิบายสำหรับ!ตัวเลือก (ซึ่งหมายถึงไม่รวม ) ในคำสั่งในfindman find

และจากนั้นผมกด/และshift + 1ที่Non-matchโผล่ออกมาแทน! ดังนั้นคำถามของฉันคือวิธีการค้นหา!ใน manpage หรือไม่?

ภาพ

คำตอบ:


17

เริ่มต้นเพจเจอร์คือman lessหากคุณดูที่lessความช่วยเหลือ (กดhในขณะนั้น) คุณจะเห็น:

                          SEARCHING

  /pattern          *  Search forward for (N-th) matching line.
  ?pattern          *  Search backward for (N-th) matching line.
  n                 *  Repeat previous search (for N-th occurrence).
  N                 *  Repeat previous search in reverse direction.
  ESC-n             *  Repeat previous search, spanning files.
  ESC-N             *  Repeat previous search, reverse dir. & spanning files.
  ESC-u                Undo (toggle) search highlighting.
  &pattern          *  Display only matching lines
        ---------------------------------------------------
        A search pattern may be preceded by one or more of:
        ^N or !  Search for NON-matching lines.

หรือในman less:

/pattern
      Search forward in the file for the N-th line containing the pat‐
      tern.  N defaults to 1.  The pattern is a regular expression, as
      recognized  by  the  regular expression library supplied by your
      system.  The search starts at the first line displayed (but  see
      the -a and -j options, which change this).

      Certain  characters  are  special if entered at the beginning of
      the pattern; they modify the type of search rather  than  become
      part of the pattern:

      ^N or !
             Search for lines which do NOT match the pattern.

ดังนั้นรูปแบบของเพียงแค่!เป็นรูปแบบที่ว่างเปล่า (ซึ่งตรงกับสิ่งใด ๆ ) เมื่อตะกี้ - ดังนั้นไม่มีอะไรจะตรงกับมัน

คุณจะต้องหลีกเลี่ยงความสำคัญของ!การเริ่มต้นของรูปแบบโดยใช้เครื่องหมายแบ็กสแลช ( \!) หรือมิฉะนั้นจะไม่ใช้อักขระตัวแรกของ regex ( /[!]ตัวอย่างเช่น)

วิธีอื่นคือใช้grep:

$ man find | grep !
       with  `-', or the argument `(' or `!'.  That argument and any following
       ! expr True  if  expr  is false.  This character will also usually need
              Same as ! expr, but not POSIX compliant.
       The POSIX standard specifies parentheses `(', `)', negation `!' and the
       find /sbin /usr/sbin -executable \! -readable -print
       find . -perm -444 -perm /222 ! -perm /111
       find . -perm -a+r -perm /a+w ! -perm /a+x
       -perm  /222 or -perm /a+w) but are not executable for anybody ( ! -perm
       /111 and ! -perm /a+x respectively).
       find . -name .snapshot -prune -o \( \! -name *~ -print0 \)|

9

คุณต้องพิมพ์\ก่อนพิมพ์!เพื่อที่จะไม่ถูกตีความว่าเป็นนิพจน์ทั่วไปของการปฏิเสธในการค้นหา


4

อีกวิธีในการทำสิ่งนี้:

man --html=firefox find

หลังจาก manpage เปิดใน firefox ให้กดCTRL+ Fเพื่อค้นหาอักขระใด ๆ


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