น้อยจะเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เสมอ


21

พยายามค้นหาวิธีใช้การค้นหาแบบคำนึงถึงขนาดตัวพิมพ์ในlessฉันพบสิ่งนี้ในเซิร์ฟเวอร์ข้อผิดพลาด

ดูเหมือนว่าจะตอบคำถามของฉันได้อย่างสมบูรณ์แบบ ปัญหาคือ: มันไม่ทำงานอย่างนั้นที่นี่ (openSUSE 13.1; น้อยกว่า 458)

ฉันได้ aliased lessไปless -WiNSแต่ผมเปลี่ยนที่ แต่แม้กระทั่งเรียกมันว่าcommand less fileไม่เปลี่ยนแปลงอะไรเลย ฉันตรวจสอบแล้วpsว่าไม่มี-iตัวเลือกในบรรทัดคำสั่งอีกต่อไป

ในขณะที่คำตอบบอกว่าความlessช่วยเหลือ (กดh) ระบุว่าฉันสามารถใช้-iภายในlessได้เช่นกัน ถ้าฉันใช้สิ่งนั้นครั้งเดียวก็lessบอกฉันว่ามันเปลี่ยนไปเป็นการค้นหาแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (นั่นคือประเภทที่ถูกต้อง: ไม่มีอะไรเปลี่ยนแปลง) ถ้าฉันใช้มันสองครั้งก็lessบอกว่ามันหันไปใช้การค้นหาแบบตัวพิมพ์ใหญ่ - เล็ก และถูกต้องแล้วมันทำงานได้ตามที่ควรตั้งแต่เริ่มต้น -iแม้ว่าการให้สองครั้งบนบรรทัดคำสั่งจะไม่ทำงาน

มีอะไรเหรอ


1
GNU น้อยลงไม่ทำงานอย่างนั้นสำหรับฉัน (เช่นจะเป็นกรณี ๆ ไปตามค่าเริ่มต้น) คุณแน่ใจหรือว่าไม่ได้ใช้นามแฝง คุณใช้ตัวเลือกใดpsเพื่อตรวจสอบสิ่งนั้น
goldilocks

1
อืมมม ไม่เคยสังเกตเห็นสิ่งนี้ แต่คุณถูกต้องอย่างแน่นอน กำลังหาพบ FOO เพียงFOOแต่ค้นหาfooพบและfoo FOOถึงแม้จะมีและ-i -WiNS
slm

@goldilocks กับpsฉันได้รับอย่างใดอย่างหนึ่ง ( command less) ตัวเลือกหรือ-WNSดังนั้นผมค่อนข้างแน่ใจว่านี้ไม่ได้เป็นpsที่หลบซ่อนตัวปัญหา/-i ดูเหมือนว่าจะไม่มีความเป็นไปได้ของไฟล์ปรับแต่งซึ่งสามารถเข้าไปแทรกแซงได้ที่นี่ -Iless
Hauke ​​Laging

@slm "แม้กับ -i" เป็นเรื่องตลกเพราะ-iควรจะทำอย่างนั้น คำถามที่น่าสนใจคือ: การจับคู่น้อยลงFOOสำหรับคุณfoo โดยไม่ -i ?
Hauke ​​Laging

ไม่ทำงานอย่างอื่น FOOเพียง FOOแต่การแข่งขัน ดูเหมือนว่าข้อผิดพลาดให้ฉัน
slm

คำตอบ:


32

ผมไม่แน่ใจว่าวิธีการเปิดใช้งานนี้จากบรรทัดคำสั่ง แต่เมื่อคุณกำลังอยู่ภายในของlessคุณสามารถสลับการทำงานที่คุณต้องการโดยการให้คำสั่ง-iless

สลับ -i

      เอสเอส # 1        เอสเอส # 2

กำลังค้นหา/blahและ/BLAH

      เอสเอส # 3       เอสเอส # 4

ค้นหา /Blah

      เอสเอส # 5

เห็นได้ชัดว่าคุณยังสามารถเรียกโหมดนี้ตามความต้องการโดย suffixing -iการค้นหาของคุณด้วย

ตัวอย่าง

less prompt> /search string/-i

อ้างอิง


ที่ได้ผลสำหรับฉันด้วย แต่ฉันต้องป้อนสองครั้ง ฉันเดาว่าฉันจะเขียนรายงานข้อผิดพลาดสำหรับ openSUSE
Hauke ​​Laging

@HaukeLaging - ดูเหมือนว่าจะเป็นค่าเริ่มต้นหากคุณออกและกลับมาคุณสามารถยืนยันพฤติกรรมนั้นได้หรือไม่
slm

ไม่ แต่ฉันได้ค้นพบบางสิ่งที่น่าสนใจ (ไม่เกี่ยวข้องกับ "ข้อบกพร่อง" นี้): คุณสามารถใช้-iแม้หลังจากการค้นหา ไฮไลต์การเปลี่ยนแปลงแล้ว (ถ้ามันยังใช้งานอยู่)
Hauke ​​Laging

@HaukeLaging - อ่าใช่แล้ว ดังนั้นสัญกรณ์จึงค่อนข้างน่ากลัวเมื่อเทียบกับเครื่องมืออื่น ๆ /search string/-i.
slm

1
Suffixing ไม่ทำงานless 487 (GNU regular expressions)(จาก Ubuntu 18.04)
Ruslan

5

คู่มือ (สำหรับฉันlessรุ่น 444) พูดว่า:

      Options are also taken from the environment variable "LESS".  For exam‐
   ple, to avoid typing "less -options ..." each time less is invoked, you
   might tell csh:

   setenv LESS "-options"

   or if you use sh:

   LESS="-options"; export LESS

   On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.
       On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.  If an option
   appears in the LESS variable, it can be reset to its default  value  on
   the command line by beginning the command line option with "-+".

ดังนั้นฉันจะตรวจสอบว่าตัวแปรสภาพแวดล้อมLESSอาจถูกตั้งค่าบางแห่งในเปลือก "ไฟล์จุด" ของคุณอาจ นอกจากนี้less -+iควรรีเซ็ตเป็น-iค่าเริ่มต้น (ซึ่งต้องตรงตามตัวพิมพ์ใหญ่ - เล็ก) หากที่นำกลับกรณีความไวสำหรับคุณแล้วคุณสามารถเพียงแค่อาจจะร่วมกับalias less=less -+ialias lessi=less -i


0

คุณสามารถเริ่มต้นน้อยลงและเพิกเฉยกรณีและปัญหาโดยการผ่านตัวเลือก -i สิ่งนี้จะไม่สนใจขนาดตัวพิมพ์ยกเว้นว่าสตริงค้นหามีอักขระตัวพิมพ์ใหญ่ นี่คือข้อสรุปที่น้อยกว่าจากหน้าความช่วยเหลือของ Ubuntu :

   -i or --ignore-case
          Causes searches to ignore case; that is, uppercase  and  lowercase  are  considered
          identical.   This  option  is ignored if any uppercase letters appear in the search
          pattern; in other words, if a pattern contains uppercase letters, then that  search
          does not ignore case.

   -I or --IGNORE-CASE
          Like -i, but searches ignore case even if the pattern contains uppercase letters.

รุ่นอื่น ๆ ที่น้อยกว่าอาจแตกต่างกันไปในการตีความของ -i

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