โปรแกรมแก้ไขข้อความเพื่อเปิดไฟล์ข้อความใหญ่ (ยักษ์ใหญ่ใหญ่) [ปิด]


1023

ฉันหมายถึง 100+ MB ใหญ่; ไฟล์ข้อความดังกล่าวสามารถผลักซองจดหมายของบรรณาธิการ

ฉันต้องการตรวจสอบไฟล์ XML ขนาดใหญ่ แต่ไม่สามารถแก้ไขได้หากตัวแก้ไขข้อผิดพลาด

ข้อเสนอแนะใด ๆ


166
ที่จริงแล้วไฟล์ข้อความที่มีขนาด 100+ MB หรือแม้แต่ 1+ GB นั้นไม่ใช่เรื่องแปลกอย่างที่คุณคิด (เช่นไฟล์บันทึกจากเซิร์ฟเวอร์ไม่ว่าง)
Anders Sandvig

15
ส่อเสียด: และไม่ใช่ข้อความ ฉันคิดว่าความต้องการในการอ่านไฟล์ข้อความและการอ่านไฟล์ไบนารีแตกต่างกันบ้าง คุณอาจผ่านมันผ่าน base64 หรือ uuencode
Joey

2
นี่ควรเป็นคำถามที่คล้ายกันอย่างน้อยที่สุดหรือแม้แต่การเชื่อมโยงเนื่องจากถูกถามเมื่อ 18 เดือนก่อน ... stackoverflow.com/questions/102829/
ONDEV

1
ฉันยังต้องการคำตอบสำหรับคำถามนี้เพื่ออ่านไฟล์บันทึกขนาดใหญ่ที่ฉันสร้างขึ้น!
HorseloverFat

1
@BlairHippo ฉันรู้สึกแบบเดียวกันฉันเกือบกังวลเมื่อถามคำถามเพราะมีโอกาสสูงที่บางคนจะพูดว่า "ปิดสิ่งนี้ควรไปใน Anything Exchange แทน"
Rodolfo

คำตอบ:


1386

ผู้ดูแบบอ่านอย่างเดียวฟรี:

  • Large Text File Viewer (Windows) - ชุดรูปแบบที่ปรับแต่งได้อย่างเต็มที่ (สีแบบอักษรการตัดคำขนาดแท็บ) รองรับการแยกมุมมองแนวนอนและแนวตั้ง นอกจากนี้ยังสนับสนุนการติดตามไฟล์และการค้นหา regex รวดเร็วง่ายและมีขนาดที่เล็กมาก
  • klogg (Windows, macOS, Linux) - ทางแยกของ gloggซึ่งเป็นคุณสมบัติหลักคือการค้นหานิพจน์ปกติ นอกจากนี้ยังสามารถดูไฟล์ช่วยให้ผู้ใช้สามารถทำเครื่องหมายบรรทัดและมีการเพิ่มประสิทธิภาพอย่างจริงจังในตัว แต่จากมุมมอง UI มันน่าเกลียดและ clunky
  • LogExpert (Windows) - "การเปลี่ยน GUI สำหรับtail" มันเป็นเครื่องมือวิเคราะห์ไฟล์บันทึกไม่ใช่โปรแกรมดูไฟล์ขนาดใหญ่และในการทดสอบหนึ่งครั้งก็ใช้เวลา 10 วินาทีและ RAM 700 MB เพื่อโหลดไฟล์ 250 MB แต่คุณสมบัตินักฆ่าของมันคือคอลัมน์ (แยกวิเคราะห์ไฟล์ที่อยู่ใน CSV, JSONL ฯลฯ และแสดงในรูปแบบสเปรดชีต) และเครื่องมือเน้นข้อความ (แสดงบรรทัดที่มีคำบางสีในบางสี) นอกจากนี้ยังรองรับการติดตามไฟล์, แท็บ, หลายไฟล์, ที่คั่นหนังสือ, การค้นหา, ปลั๊กอินและเครื่องมือภายนอก
  • Lister (Windows) - เล็กและเรียบง่ายมาก มันสามารถเรียกใช้งานได้เพียง 500 KB แต่ยังรองรับการค้นหา (ด้วย regexes) การพิมพ์โหมดตัวแก้ไขฐานสิบหกและการตั้งค่า
  • loxx (Windows) - รองรับไฟล์ดังต่อไปนี้การไฮไลต์หมายเลขบรรทัดไฟล์ขนาดใหญ่ regex หลายไฟล์และมุมมองและอื่น ๆ อีกมากมาย เวอร์ชันฟรีไม่สามารถ: ประมวลผล regex, กรองไฟล์, ซิงโครไนซ์เวลาประทับและบันทึกไฟล์ที่เปลี่ยนแปลง

บรรณาธิการฟรี:

  • โปรแกรมแก้ไขหรือ IDE ปกติของคุณ บรรณาธิการสมัยใหม่สามารถจัดการไฟล์ขนาดใหญ่ได้อย่างน่าประหลาดใจ โดยเฉพาะอย่างยิ่งVim (Windows, macOS, Linux), Emacs (Windows, macOS, Linux), Notepad ++ (Windows), Sublime Text (Windows, macOS, Linux) และVS Code (Windows, macOS, Linux) รองรับขนาดใหญ่ (~ ไฟล์ 4 GB) สมมติว่าคุณมี RAM
  • Large File Editor (Windows) - เปิดและแก้ไขไฟล์ TB +, รองรับ Unicode, ใช้หน่วยความจำน้อย, มีคุณสมบัติเฉพาะ XML และมีโหมดไบนารี
  • GigaEdit (Windows) - รองรับการค้นหาสถิติของตัวละครและการปรับแต่งแบบอักษร แต่มันเป็นบั๊กซี - ด้วยไฟล์ขนาดใหญ่จะอนุญาตเฉพาะการเขียนทับตัวอักษรเท่านั้นไม่สามารถแทรกได้ ไม่เคารพ LF ในฐานะเทอร์มิเนเตอร์บรรทัดเพียง CRLF เท่านั้น และมันก็ช้า

โปรแกรมในตัว (ไม่จำเป็นต้องติดตั้ง)

  • less (macOS, Linux) - เครื่องมือเพจเจอร์บรรทัดคำสั่ง Unix แบบดั้งเดิม ให้คุณดูไฟล์ข้อความขนาดใดก็ได้ สามารถติดตั้งบน Windows ได้เช่นกัน
  • Notepad (Windows) - ดีกับไฟล์ขนาดใหญ่โดยเฉพาะเมื่อปิด word wrap
  • เพิ่มเติม (Windows) - นี่หมายถึงของ WindowsMORE, moreUnix โปรแกรมคอนโซลที่ให้คุณดูไฟล์ทีละหน้าจอ

ผู้ดูเว็บ:

  • readfileonline.com - โปรแกรมดูไฟล์ขนาดใหญ่อีก HTML5 รองรับการค้นหา

บรรณาธิการที่ชำระเงิน:

  • 010 Editor (Windows, macOS, Linux) - เปิดไฟล์ขนาดยักษ์ (ใหญ่ถึง 50 GB)
  • SlickEdit (Windows, macOS, Linux) - เปิดไฟล์ขนาดใหญ่
  • UltraEdit (Windows, macOS, Linux) - เปิดไฟล์ที่มีขนาดเกิน 6 GB แต่ต้องเปลี่ยนการกำหนดค่าเพื่อให้สามารถใช้งานได้จริง: เมนู»ขั้นสูง»การกำหนดค่า»การจัดการไฟล์»ไฟล์ชั่วคราว»เปิดไฟล์ที่ไม่มีไฟล์ temp ...
  • EmEditor (Windows) - รองรับไฟล์ข้อความที่มีขนาดใหญ่มาก (อย่างเป็นทางการมากถึง 248 GB แต่มากถึง 900 GB ตามรายงานฉบับเดียว)

60
VIM หรือ Emacs ... เลือกพิษของคุณทั้งคู่จะจัดการกับไฟล์ที่คุณโยนไป โดยส่วนตัวแล้วฉันชอบ Emacs มาก แต่ทั้งคู่จะเอาชนะ notepad โดยไม่ต้องสะอึก
Mike Stone

25
Emacs มีขนาดบัฟเฟอร์สูงสุดขึ้นอยู่กับสถาปัตยกรรมพื้นฐาน (32 หรือ 64 บิต) ฉันคิดว่าในระบบ 32 บิตคุณได้รับข้อผิดพลาด "เกินขนาดบัฟเฟอร์สูงสุด" ในไฟล์ที่ใหญ่กว่า 128 MB
Rafał Dowgird

82
ฉันก็พยายาม Notepad ++ มีล็อกไฟล์ 561MB และมันบอกว่ามันเป็นขนาดใหญ่เกินไป
barfoon

9
@Rafal ที่น่าสนใจ! ดูเหมือนว่าบน 64 บิตเป็น ~ 1024 เพตาไบต์ เหตุผลที่จะทำอย่างไรกับความจริงที่ว่า emacs มีการติดตามตำแหน่งบัฟเฟอร์ (เช่นจุด)
baudtack

79
แต่ต้องระวังเสียงเรียกเข้าจะทำงานได้ตราบใดที่ไฟล์ดังกล่าวมีตัวแบ่งบรรทัดเพียงพอ ฉันเคยต้องแก้ไขแคลิฟอร์เนีย ไฟล์ 150 MB โดยไม่มีตัวแบ่งบรรทัดใด ๆ และต้องหันไป gedit เพราะเป็นกลุ่มจัดการไม่ได้
Benno

192

เคล็ดลับและลูกเล่น

น้อยกว่า

เหตุใดคุณจึงใช้โปรแกรมแก้ไขเพื่อดูไฟล์ (ขนาดใหญ่)

ภายใต้ระวัง * หรือCygwinเพียงใช้น้อย (มีคำพูดที่โด่งดัง - "less is more, more or less" - เพราะ "less" แทนที่คำสั่ง Unix ก่อนหน้านี้ "more" ด้วยการเพิ่มที่คุณสามารถเลื่อนกลับขึ้นไปได้) การค้นหาและการนำทางภายใต้น้อยกว่านั้นคล้ายกับ เป็นกลุ่ม แต่ไม่มีไฟล์สลับและ RAM ใช้งานน้อย

มีพอร์ต Win32 ของ GNU น้อยกว่า ดูหัวข้อ "น้อยลง" ของคำตอบด้านบน

Perl

Perl เป็นสิ่งที่ดีสำหรับสคริปต์ที่รวดเร็วและตัวดำเนินการ..(range flip-flop) ทำให้มีกลไกการเลือกที่ดีเพื่อ จำกัด crud ที่คุณต้องลุย

ตัวอย่างเช่น:

$ perl -n -e 'print if ( 1000000 .. 2000000)' humongo.txt | less

สิ่งนี้จะแยกทุกอย่างจากบรรทัด 1 ล้านถึง 2 ล้านบรรทัดและช่วยให้คุณสามารถกรองเอาต์พุตด้วยตนเองได้น้อย

ตัวอย่างอื่น:

$ perl -n -e 'print if ( /regex one/ .. /regex two/)' humongo.txt | less

สิ่งนี้จะเริ่มพิมพ์เมื่อ "นิพจน์ปกติหนึ่ง" พบบางสิ่งและหยุดเมื่อ "นิพจน์ปกติสอง" ค้นหาจุดสิ้นสุดของบล็อกที่น่าสนใจ อาจพบว่ามีหลายบล็อก ร่อนผลลัพธ์ ...

LogParser

นี่เป็นอีกเครื่องมือที่มีประโยชน์ที่คุณสามารถใช้ได้ หากต้องการอ้างอิงบทความ Wikipedia :

logparserเป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่ยืดหยุ่นซึ่งเริ่มแรกเขียนโดย Gabriele Giuseppini พนักงาน Microsoft เพื่อทำการทดสอบ IIS โดยอัตโนมัติ มันมีไว้สำหรับใช้กับระบบปฏิบัติการ Windows และรวมอยู่ใน IIS Kit Resource Kit Tools พฤติกรรมเริ่มต้นของ logparser ทำงานเหมือน "data processing ไปป์ไลน์" โดยรับนิพจน์ SQL บนบรรทัดคำสั่งและส่งออกบรรทัดที่มีการจับคู่สำหรับนิพจน์ SQL

Microsoft อธิบาย Logparser เป็นเครื่องมืออเนกประสงค์ที่ทรงพลังและให้การเข้าถึงข้อมูลที่เป็นข้อความอย่างสากลเช่นไฟล์บันทึกไฟล์ XML และไฟล์ CSV รวมถึงแหล่งข้อมูลที่สำคัญในระบบปฏิบัติการ Windows เช่น Event Log, Registry ระบบไฟล์และ Active Directory ผลลัพธ์ของเคียวรีอินพุตสามารถจัดรูปแบบแบบกำหนดเองในเอาต์พุตแบบข้อความหรือสามารถคงอยู่กับเป้าหมายพิเศษเพิ่มเติมเช่น SQL, SYSLOG หรือแผนภูมิ

ตัวอย่างการใช้งาน:

C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line > 1000 and line < 2000"
C:\>logparser.exe -i:textline -o:tsv "select Index, Text from 'c:\path\to\file.log' where line like '%pattern%'"

ความสัมพันธ์ของขนาด

100 MB ไม่ใหญ่เกินไป 3 GB เริ่มใหญ่ขึ้น ฉันเคยทำงานที่ศูนย์การพิมพ์และจดหมายซึ่งสร้างจดหมายชั้นหนึ่งประมาณ 2% ของสหรัฐอเมริกา หนึ่งในระบบที่ฉันเป็นผู้นำทางเทคโนโลยีคิดเป็นประมาณ 15 +% ของชิ้นส่วนของจดหมาย เรามีไฟล์ขนาดใหญ่ที่จะแก้จุดบกพร่องที่นี่และที่นั่น

และอื่น ๆ...

อย่าลังเลที่จะเพิ่มเครื่องมือและข้อมูลเพิ่มเติมที่นี่ คำตอบนี้คือวิกิชุมชนด้วยเหตุผล! เราทุกคนต้องการคำแนะนำเพิ่มเติมเกี่ยวกับการจัดการกับข้อมูลจำนวนมาก ...


8
+1 เมื่อเร็ว ๆ นี้ฉันมีไฟล์ xml ขนาดใหญ่มาก (+1 กิกะไบต์) ที่ฉันต้องดู ฉันอยู่บน windows และทั้งกลุ่ม, emacs, notepad ++ และบรรณาธิการอื่น ๆ หลายคนสำลักไฟล์อย่างสมบูรณ์จนถึงจุดที่ระบบของฉันเกือบจะไม่สามารถใช้งานได้เมื่อพยายามเปิดไฟล์ หลังจากที่ในขณะที่ฉันตระหนักถึงความจำเป็นที่จะต้องพยายามเปิดไฟล์ใน -ditor- เมื่อฉันเพียงแค่ต้องดู - มัน การใช้ cygwin (และ grep / less / sed-magic ฉลาด) ฉันพบส่วนที่ฉันสนใจและอ่านได้ง่ายโดยไม่ต้องยุ่งยาก
wasatz

8
คุณไม่จำเป็นต้องใช้ cygwin น้อยกว่าคุณยังสามารถใช้งานได้ภายใต้ windows: gnuwin32.sourceforge.net/packages/less.htm
ChristophK

2
เครื่องมือแก้ไข XMLนี้ที่นี่ยังมีส่วนประกอบเครื่องมือดูไฟล์ขนาดใหญ่และให้การกำหนดสีสำหรับไฟล์ขนาดใหญ่เช่นกัน ไฟล์ไม่ได้โหลดอย่างสมบูรณ์ในหน่วยความจำดังนั้นเอกสารหลาย GB ไม่ควรมีปัญหา นอกจากนี้เครื่องมือนี้ยังสามารถตรวจสอบเอกสาร XML ขนาดใหญ่เหล่านั้นได้ ... ในความคิดของฉันหนึ่งในวิธีที่ดีที่สุดในการทำงานกับข้อมูล XML ขนาดใหญ่
lichtfusion

9
ตกลงดังนั้นฉันเพิ่งแก้ไขปัญหาของฉันเอง lessด้วยการตัดคำช้า less -Sไม่มีการพันคำเร็วเกินไปแม้เป็นเส้นใหญ่ ฉันมีความสุขอีกครั้ง!
Andy Brown

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