ทำให้พิมพ์น้อยลงไปที่ stdout หากไฟล์ทั้งหมดสามารถแสดงบนหน้าจอเดียว


13

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

lessมีตัวเลือกให้ออกหากไฟล์ที่ทำงานนั้นสามารถแสดงผลบนหน้าจอเดียว ( -F) และมีmoreคุณสมบัติ -emulation ที่ทำงานในลักษณะคล้ายกับ-Fแฟล็ก แต่ตัวเลือกเหล่านี้ดูเหมือนจะไม่ทำให้เกิดlessการเขียนเนื้อหาของไฟล์ เพื่อ stdout หากเนื้อหาสามารถพอดีกับหน้าจอเดียว

ฉันlessจะเขียนเนื้อหาของไฟล์เพื่อ stdout ได้อย่างไรถ้าเนื้อหาของไฟล์สามารถพอดีกับหน้าจอเดียวและแบ่งหน้าไฟล์ตามปกติ

less  more 

คำตอบ:


16

less -FXใช้ จากman less:

   -F or --quit-if-one-screen
          Causes less to automatically exit if the entire file can be dis-
          played on the first screen.

   -X or --no-init
          Disables sending the termcap initialization and deinitialization
          strings  to  the  terminal.   This is sometimes desirable if the
          deinitialization string does something unnecessary, like  clear-
          ing the screen.

ทำไมไม่-Fเพียงทำงานร่วมกับ-X?
Jesse

2
@Jesse มันใช้งานได้ดีจริง ๆ โดยที่-Xไม่คาดหวัง เนื่องจากเพจเจอร์น้อยที่ทำงานบนหน้าจอทางเลือกในเทอร์มินัลของคุณหากคุณไม่ปิดใช้งานการกำหนดค่าเริ่มต้น termcap ทั้งคู่จะเริ่มและออกจากหน้าจออื่น คุณอาจเห็นแฟลชเร็ว
Chris Down

ดังนั้นฉันไม่เห็นอะไรเลยecho lol | LESS=F lessเพราะมันพิมพ์บนหน้าจออื่นและเปลี่ยนกลับทันทีหรือไม่ ทำให้รู้สึกว่าฉันเดา (แม้ว่าฉันจะไม่เห็นแฟลชอย่างรวดเร็ว) ขอบคุณ
Jesse

Bah! ฉันสงสัยว่าผู้พัฒนาน้อยคิดอย่างไรเมื่อใช้หน้าจอทางเลือกหากมี -F แสดงอยู่และ "ใช้" มันไม่มีเหตุผลเลยที่จะใช้หน้าจอทางเลือกในกรณีนี้
ThiefMaster

ดูunix.stackexchange.com/q/107315/85237สำหรับการทำงานโดยไม่ต้องless -F -X
John Mellor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.