วิธีแสดงหมายเลขบรรทัดใน 'less' (GNU)


660

คำสั่งให้แสดงหมายเลขบรรทัดน้อยลงในคอลัมน์ซ้ายคืออะไร


80
lessเป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่ง linux และเป็นที่นิยมใช้โดยโปรแกรมเมอร์ในการดูไฟล์ข้อความ คำถามนี้เป็นคำถามในหัวข้อสำหรับ Stack Overflow ภายใต้โดเมนของ "เครื่องมือที่ใช้โดยโปรแกรมเมอร์" เช่นเดียวกับคำถามทั้งหมดที่เกี่ยวข้องกับการใช้gitอยู่ในหัวข้อ นอกจากนี้ยังเป็นที่นิยมใน Google เป็นอันดับแรกเมื่อค้นหา "แสดงหมายเลขบรรทัดน้อยลง" คำถามนี้ไม่ควรปิด
John Dibling

5
@JohnDibling คำถามที่มีความเหมาะสมมากขึ้นสำหรับUnix และ Linux Stack แลกเปลี่ยน เพียงเพราะlessโปรแกรมเมอร์ใช้งานไม่ได้ทำให้มันอยู่ในหัวข้อ ดินสอเป็น "เครื่องมือที่ใช้โดยโปรแกรมเมอร์" ด้วยเช่นกัน แต่คำถามเกี่ยวกับการลับคมดินสอจะไม่เหมาะสมที่นี่
augurar

17
@augurar ฉันคิดว่าคุณไม่ทราบว่าเครื่องมือที่นี่หมายถึงเครื่องมือซอฟต์แวร์ คุณกำลังตีความความหมายของเครื่องมือโดยเจตนา โดยวิธีการที่ผมคิดว่าเป็นอย่างดีว่าคำถามนี้มีความเหมาะสมสำหรับ Unix และ Linux Stack แลกเปลี่ยน แต่มันก็ไม่ได้ป้องกันไม่ให้คำถามนี้จะอยู่ที่นี่ในดังนั้น :)
Gab是好人

คำตอบ:


979

จากคู่มือ :

-N หรือ --LINE-NUMBERS ทำให้หมายเลขบรรทัดถูกแสดงที่จุดเริ่มต้นของแต่ละบรรทัดในจอแสดงผล

คุณยังสามารถสลับหมายเลขบรรทัดได้โดยไม่ต้องพิมพ์-Nน้อย

เป็นไปได้ที่จะสลับตัวเลือกบรรทัดคำสั่งใด ๆ ของน้อยลงด้วยวิธีนี้


6
เมื่อฉันมีไฟล์ขนาดใหญ่น้อยลงจากนั้น "G" ที่ด้านล่างจะมีข้อความระบุว่า "การคำนวณหมายเลขบรรทัด ... (ขัดจังหวะเพื่อยกเลิก)" แม้ว่าจะไม่แสดงหมายเลขบรรทัด ฉันต้องการทราบวิธีค้นหาว่าฉันอยู่บนบรรทัดใดโดยไม่ออกและเปิดใหม่อีกครั้งด้วย -N ฉันกำลังได้รับโทษ รางวัลอยู่ที่ไหน
Bruno Bronosky

93
ว้าวฉันดูความช่วยเหลือมาแล้วหลายสิบครั้งโดยหวังว่าจะได้คำตอบในเรื่องนี้ ฉันมองข้าม "- <flag> สลับตัวเลือกบรรทัดคำสั่ง [ดูตัวเลือกด้านล่าง]" ... ซึ่งหมายความว่าคุณสามารถพิมพ์ "-N" จากภายในน้อยกว่า ฉันรำคาญกับเรื่องนี้มาประมาณสิบปีแล้ว ช่วงเวลาที่ดี!
Bruno Bronosky

2
เป็นไปได้หรือไม่ที่จะแสดงหมายเลขบรรทัดเป็นสีอื่น
greg

3
สวัสดี @ รวมคุณสามารถใช้sedเพื่อกำหนดสีหมายเลขบรรทัดและตัวเลือก-Rเพื่อให้lessแสดงสี: cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R คุณอาจกำหนดเองได้LESSOPEN ... ไชโย;)
โอลิเบอร์

1
กด ENTER / RETURN หากคุณพยายามสลับ หลังจากพิมพ์ -n หรือ -N ในขณะที่ใช้น้อยคุณอาจต้องกดปุ่มนั้นหลังจากนั้นเพื่อให้การเปลี่ยนแปลงมีผล แม้มันจะบอกว่าที่ด้านล่าง แต่สมองของฉันไม่ได้เชื่อมต่อจุดต่าง ๆ เพราะฉันคิดว่ามันจะเกิดขึ้นทันทีและฉันก็พิมพ์ต่อไป -N และสงสัยว่าทำไมตัวเลขไม่ปรากฏขึ้น
abelito

146

คุณสามารถกด=ในขณะที่lessเปิดเพื่อแสดงข้อมูล (ที่ด้านล่างของหน้าจอ) เกี่ยวกับหน้าจอปัจจุบันรวมถึงหมายเลขบรรทัดด้วยรูปแบบ:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)

ตัวอย่างเช่นที่นี่หน้าจอกำลังแสดงบรรทัด20530-20585และไฟล์มีจำนวน1816468บรรทัดทั้งหมด


44

คุณสามารถกรองไฟล์cat -nก่อนทำการไพพ์ถึงless:

cat -n file.txt | less

หรือหากรุ่นของคุณlessรองรับ-Nตัวเลือก:

less -N file.txt

4
รุ่นใดที่คุณรู้น้อยกว่านั้นไม่รองรับ
Aaron Hall

ฉันมักจะใช้ nl แทน cat -n
ychaouche

32

คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมให้ใช้ตัวเลือกเหล่านี้กับไฟล์ที่ต้องการทั้งหมด:

export LESS='-RS#3NM~g'

2
สายalias less="LESS='-RS#3NM~g' less"ใน.bashrcได้ในวันของฉัน! ขอบคุณ!
คณะลูกขุน

4
คำอธิบายของคาถานี้จะได้รับการต้อนรับเป็นอย่างมาก :)
minexew

3
ตัวเลือกคือ: R = การจัดการรหัสสีดิบในไฟล์ได้ดีขึ้น S = เลื่อนเส้นยาวออกจากหน้าจอแทนการตัดคำ # 3 = เลื่อนไปทางซ้าย / ขวา 3 ตำแหน่งพร้อมกัน N = แสดงหมายเลขบรรทัด M = พร้อมท์อีกต่อไป ~ = แทนที่จะแสดงพื้นที่ว่างหลังจากไฟล์ลงท้ายด้วย ~ ไม่ต้องแสดงอะไรสำหรับพื้นที่ว่าง g = เมื่อทำการค้นหาด้วย 'g' เพียงเน้นการจับคู่ปัจจุบันแทนการจับคู่ทั้งหมด
ไบรอัน

17

บรรทัดคำสั่งแฟล็ก-Nหรือ--LINE-NUMBERSทำให้หมายเลขบรรทัดถูกแสดงที่จุดเริ่มต้นของแต่ละบรรทัดในจอแสดงผล

นอกจากนี้คุณยังสามารถสลับหมายเลขบรรทัดโดยไม่ต้องเลิกโดยการพิมพ์less -N<return>เป็นไปได้ที่จะสลับlessตัวเลือกบรรทัดคำสั่งใด ๆด้วยวิธีนี้


1
ผ่าน -N หรือ --LINE-NUMBERS จะแสดงเฉพาะวันที่สำหรับฉันใน CentOS 5.3 อย่างไรก็ตามการใช้ -N หลังจากเริ่มทำงานได้น้อยลง
Mike Miller

15

หากคุณกด=และคาดว่าจะเห็นหมายเลขบรรทัด แต่เห็นเฉพาะจำนวนไบต์ระบบจะปิดหมายเลขบรรทัดนั้น กด-nเพื่อเปิดใช้งานและตรวจสอบให้แน่ใจ$LESSว่าไม่ได้รวม 'n'

การปิดหมายเลขบรรทัดโดยค่าเริ่มต้น (ตัวอย่างเช่นการตั้งค่าLESS=n) จะช่วยเพิ่มความเร็วในการค้นหาในไฟล์ที่มีขนาดใหญ่มาก มันจะมีประโยชน์ถ้าคุณค้นหาไฟล์ขนาดใหญ่บ่อย ๆ แต่ไม่สนใจว่าคุณใช้สายไหน

ฉันมักจะทำงานด้วยLESS=RSXin(เปิดใช้งานรหัสหลบหนี, สับเส้นยาว, ไม่ล้างหน้าจอเมื่อออก, ไม่สนใจตัวพิมพ์เล็กในการค้นหาตัวพิมพ์เล็กทั้งหมดและไม่มีการนับจำนวนบรรทัดตามค่าเริ่มต้น) และใช้-nหรือ-Sจากภายในlessเท่าที่จำเป็น

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