สามารถแสดงสัดส่วนของไฟล์ข้อความที่ดูได้น้อยลงหรือไม่


18

ตามที่ชื่อแสดงถึงเมื่อฉันกำลังเรียกดูไฟล์ข้อความฉันต้องการทราบสัดส่วนที่ดูในปัจจุบันของไฟล์ข้อความทั้งหมด

ฉันรู้ว่าด้วยตัวเลือก -N เราสามารถเปิดหมายเลขบรรทัดได้ แต่ฉันจะแสดงหมายเลขบรรทัดของไฟล์ข้อความทั้งหมดให้น้อยลงได้อย่างไร

ขอบคุณ

คำตอบ:


19

หากคุณเปิดไฟล์ที่มีค่าน้อยกว่าการกด Ctrl-g จะแสดงหมายเลขบรรทัดปัจจุบันจำนวนบรรทัดและเปอร์เซ็นต์รวมทั้งที่แสดงด้านล่าง:

เส้น 51-100 / 185 ไบต์ 3228/5886 54% (กด RETURN)


1
Thanks.after การเยี่ยมชม man man อีกครั้งจัดการค้นหาและรับอีกสองคำสั่งที่เท่ากัน ': f' และ '=' ขออภัยสำหรับสิ่งนี้
Jichao

1
น่าเสียดายที่มันไม่ทำงานผ่านไปป์ทั้งที่มีพารามิเตอร์ -M หรือ -m จากคำตอบอื่น ตัวอย่างเช่นwdiff version1.txt version2.txt | colordiff | less -RMไม่แสดงเปอร์เซ็นต์ แจ้งให้เราทราบหากมีวิธีแก้ปัญหาหรือวิธีแก้ปัญหาสำหรับสิ่งนี้ อัปเดต: โซลูชันคือการเพิ่ม + Gg เหมือนกับคำตอบอื่นที่อธิบายไว้
baptx

18

คุณหมายถึงชอบด้วย-Mสวิตช์?


นั่นคือสิ่งที่ฉันต้องการ!
Jichao

หรือ-mหากไม่จำเป็นต้องใช้หมายเลขบรรทัด
Franklin Yu

1
คุณมีความคิดหรือไม่หากมีวิธีการแก้ปัญหาหรือวิธีแก้ปัญหาเพื่อแสดงเปอร์เซ็นต์เมื่อใช้ท่อ ตัวอย่างเช่นฉันไม่เห็นเปอร์เซ็นต์ของสีต่างกับคำสั่งนี้: wdiff version1.txt version2.txt | colordiff | less -RMอัปเดต: การแก้ปัญหาคือการเพิ่ม + Gg เหมือนคำตอบอื่นที่อธิบายไว้
baptx

6

less -M +Gg

สำหรับไฟล์ที่ไม่ใหญ่มากมันก็โอเคเพราะ+G( Gคำสั่ง) ไปจนถึงจุดสิ้นสุดของไฟล์


1
ยอดเยี่ยมสำหรับ$MANPAGERแม้ว่า! man manดู
Tom Hale

ยอดเยี่ยมcolordiffเช่นกัน! เช่น:wdiff version1.txt version2.txt | colordiff | less -RM +Gg
baptx

4

เพียงแค่ขยายคำตอบก่อนหน้านี้เล็กน้อย บรรทัดคำสั่ง:

less -M +Gg

ทำต่อไปนี้:

-Mแสดงตำแหน่งปัจจุบันภายในไฟล์ที่พร้อมท์ คำสั่ง+ Gg Run G(ไปที่ส่วนท้ายของไฟล์) และg(กลับไปที่จุดเริ่มต้นของไฟล์)

หากlessกำลังอ่านจาก stdin ซึ่งเกิดขึ้นเมื่อmanแสดงหน้า man จะไม่ทราบจำนวนบรรทัดทั้งหมดในไฟล์ล่วงหน้าเพื่อให้สามารถคำนวณตำแหน่งได้อย่างถูกต้อง ดังนั้นจึง+Ggเป็นสิ่งจำเป็นเพื่อให้lessได้จำนวนบรรทัดทั้งหมดและคำนวณตำแหน่งปัจจุบันเป็นเปอร์เซ็นต์

ฉันพบว่ามีประโยชน์ในการตั้งค่าตัวแปรเหล่านี้ใน~ / .bashrc :

export LESS+='-M'
export MANPAGER='less +Gg'

LESSจะตรวจสอบให้แน่ใจว่าการเรียกทั้งหมดของlessจะแสดงตำแหน่งปัจจุบันบนพรอมต์และMANPAGERจะทำให้มั่นใจได้ว่าlessจะสามารถรับจำนวนบรรทัดทั้งหมดในหน้า man ซึ่งlessจะแสดงบน prompt ดูเหมือนจะมีเหตุผลมากกว่าที่จะไม่รวม+Ggไว้ในLESSเพื่อป้องกันไม่ให้lessพยายามไปจนถึงจุดสิ้นสุดของอินพุต piped ขนาดใหญ่ที่อาจเกิดขึ้น หากจำเป็นคุณสามารถเรียกใช้คำสั่งGและgด้วยตนเองได้เสมอ


+1 สำหรับวิธีด้วยตนเองกดGg
wisbucky

ทำไมต้องใส่เครื่องหมายบวก "LESS +" ในตัวอย่างของคุณ? ไม่ควรจะเพียงพอที่จะเพียงแค่เขียน "export LESS = 'M'"
db

@db, LESS + = '- M' จะผนวกตัวเลือก - M สำหรับตัวเลือกใด ๆ ที่ตั้งค่าไว้ก่อนหน้าสำหรับ LESS
Paulo Marcel Coelho Aragão
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.