ผมได้สร้างwordlist.txt
11 GB crunch-3.6
โดย เมื่อฉันพยายามเปิดไฟล์ด้วย Vi หรือ gedit ฉันพบปัญหาเนื่องจากขนาดไฟล์ ฉันจะดูไฟล์นี้ได้อย่างไร?
ผมได้สร้างwordlist.txt
11 GB crunch-3.6
โดย เมื่อฉันพยายามเปิดไฟล์ด้วย Vi หรือ gedit ฉันพบปัญหาเนื่องจากขนาดไฟล์ ฉันจะดูไฟล์นี้ได้อย่างไร?
คำตอบ:
อย่าใช้โปรแกรมแก้ไขข้อความเพื่อดูข้อความ
มีเครื่องมือที่ดีกว่า:
ดูไฟล์ด้วยless
(เลื่อนด้วย Space, End, Home, PageUp, PageDown; ค้นหาด้วย "/ something"; Leave with q)
จากless
คู่มือ:
Less ไม่จำเป็นต้องอ่านไฟล์อินพุตทั้งหมดก่อนที่จะเริ่มดังนั้นด้วยไฟล์อินพุตขนาดใหญ่มันจะเริ่มต้นเร็วกว่าโปรแกรมแก้ไขข้อความเช่น vi (1)
การใช้งาน:
less wordlist.txt
พิจารณาการใช้less -n
:
-n หรือ - หมายเลขบรรทัด:
ไม่แสดงหมายเลขบรรทัด ค่าเริ่มต้น (เพื่อใช้หมายเลขบรรทัด) อาจทำให้การรันช้าลงในบางกรณีโดยเฉพาะอย่างยิ่งกับไฟล์อินพุตที่มีขนาดใหญ่มาก การระงับหมายเลขบรรทัดด้วย
-n
ตัวเลือกจะช่วยหลีกเลี่ยงปัญหานี้ได้
(ขอบคุณสำหรับการแนะนำ -n ตัวเลือก @pipe)
ใช้grep
เพื่อรับเฉพาะบรรทัดที่คุณสนใจ:
# Show all Lines beginning with A:
grep "^A:" wordlist.txt
# Show all Lines ending with x and use less for better viewing
grep "x$" wordlist.txt | less
ใช้head
หรือtail
เพื่อรับบรรทัดแรกหรือบรรทัดสุดท้าย
head wordlist.txt
tail -n 200 wordlist.txt
สำหรับการแก้ไขข้อความอ้างอิงถึงคำถามนี้
more
จะโหลดไฟล์ทั้งหมดในหน่วยความจำไม่เหมือนless
กัน ถ้ามันใหญ่ขนาดนั้นฉันจะแนะนำให้ใช้ grep
เลือกที่ดีที่สุดแน่นอนจะใช้
more
และless
รหัสแหล่งที่มาและทั้งสองดูเหมือนจะใช้อย่างใดอย่างหนึ่งopen
หรือfopen
ซึ่งไม่ได้เปลี่ยนแปลงอะไรเกี่ยวกับวิธีการที่ไฟล์ที่จะโหลดเท่าที่ฉันรู้
more
เป็นสาธารณูปโภควันมากถ้าใช้ได้ผมไม่คิดว่าจะด้วยเหตุผลใดเหตุผลที่คุณต้องการใช้less
more
more
มีข้อได้เปรียบอย่างมากที่เหนือกว่าless
: ไม่รองรับLESSOPEN
ตัวประมวลผลล่วงหน้าอินพุต หากคุณพยายามที่จะดูข้อความต้นฉบับของหน้าคนหรือบางสิ่งบางอย่างมันจะเร็วmore my_docs.man
กว่าการขุดผ่านless
เอกสารเพื่อหาวิธีที่จะปราบปรามตัวประมวลผลล่วงหน้า
less -nS
ไฟล์ขนาดใหญ่เพื่อเร่งความเร็วของสิ่งเล็ก ๆ น้อย ๆ
บ่อยครั้งที่ "grep" ก็เพียงพอที่จะค้นหาสิ่งที่คุณต้องการ
หากคุณต้องการ "บริบท" เพิ่มเติมรอบ ๆ บรรทัดหนึ่งให้ใช้ "grep -n" เพื่อค้นหาหมายเลขบรรทัดของบรรทัดที่สนใจแล้วใช้ sed เพื่อพิมพ์ "กลุ่ม" ของไฟล์รอบบรรทัดนั้น:
$ grep -n 'word' file
123:A line with with word in it
$ sed -n '120,125p' file
A line
Another line
The line before
A line with with word in it
The line after
Something else
grep -B
และ-A
พิมพ์บรรทัดB efore และA fter ...
-C
สำหรับCก้อนใหญ่ (ทั้งก่อนและหลัง)