Як розділити великий файл на Windows?


75

Чи є інструмент для розділення великого текстового файлу (9Gb) на менші файли, щоб я міг його відкрити і переглянути?

Що можна використовувати з командного рядка, що постачається з Windows (XP)?

Або який найкращий спосіб розділити його? Чи можна використовувати 7z для створення окремих томів, а потім розпакуйте один з них окремо? Чи читається це чи потрібні всі інші частини, щоб знову розпакувати їх у великий файл?

Оновлення

Я зібрав швидкий сценарій python на 48 рядків, який розділив великий файл на 0,5 ГБ файли, які легко відкрити навіть у vim. Мені просто потрібно було переглянути дані до останньої частини журналу (так, це файл журналу). Кожен запис розділений на кілька рядків, так що grep не буде робити.


Я бачу, ви редагували згадку про grep. У вас встановлено cygwin чи unxutils? Ви могли б використовувати grep -nз headі tailпобачити шматки файлу. Приклад, grep -n "something" file.txtповертає 95625: something. Ви хочете , щоб побачити цей рядок і 9 рядків нижче нього в цілому 10 ліній: head -n 95635 file.txt | tail -n 10.
Джон Т

Я помічаю, що ви вирішили свою проблему. Якщо ви все ще поруч, можете опублікувати рішення, щоб інші могли отримати користь?
Подорожник Geek

Це було детально обговорено у " Переповнення стека" [1] [1]: stackoverflow.com/questions/159521/…
Rishi Dua,

Відповіді:


43

Існує безкоштовний роздільник файлів Windows під назвою HJSplit

Доступний тут . Веб-сайт стверджує, що він може розділяти файли будь-якого типу та розміру, але 9 ГБ - це великий файл.


1
За словами видавця, він підтримує розбиття файлів на "понад 100 гігабайт"
yosh m

8
Мені вдалося скористатися цією програмою, щоб розділити великий файл на менші шматки, але лише за розміром (кБ або МБ). Він не поважає рядки, тому не дуже корисний для розбиття файлів журналів. Це також дуже повільно.
знесення нанівець

HJSplit працює так некрасиво ... Він не працює з файлами 5Gb +. Найбільша частина файлу просто втрачається взагалі. Chunck peases зустрічається nofuses після 999 року, і щось інше failles, якщо використовувати більші
горохи

У 64-бітових системах він працює лише з графічним інтерфейсом у Windows. Якщо ви хочете автоматизувати речі, це не рішення
576i

24

Пакет GNU Core Utils (доступний тут для вікон) включає утиліту Split. Це добре працює для мене :-)

Документація --help така:

Usage: split [OPTION] [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           print a diagnostic to standard error just
                            before each output file is opened
      --help     display this help and exit
      --version  output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

Наприклад, розділити input.txt на шматки 100 Мб, розділяючи лише на кінці рядків,

split input.txt -C 100m

дасть вам вихідні файли з назвою xaa, xab, xac тощо.


2
наприклад, завантаження git msys включає також утиліту.
ей

Cmder для цього дивовижний
Umber Ferrule

15

Інший - GSplit - за їхнім сайтом він може розділяти дуже великі файли (більше 4Gb <- оскільки вони переступили межу 4Gb, я думаю, вони також можуть досягати 9 Gb).

Але, інша річ - ви кажете, що хочете розділити її на менші частини, щоб ви могли відкрити її і подивитися. Це звучить як дуже великий файл журналу, можливо.

У будь-якому випадку, для відкриття великих текстових файлів я можу порекомендувати EmEditor - вони стверджують, що він може відкривати дуже великі файли (до 250 Гбіт), і я раніше це використовував для файлів до 2 Гб. Але в будь-якому випадку, я думаю, це може бути кращим рішенням, ніж розділення.


Я щойно спробував GSplit. Він працює, хоча і через заплутаний інтерфейс, але не пропонує жодного способу розділити лише при розриві рядків - для розбиття файлів даних ASCII, отже, це не надто корисно, оскільки розділення пройде на півдорозі через лінію.
Flyto

1
@Flyto Це на самому ділі це можна розділити на лінії , якщо ви вибираєте «Розділити Після появи Номер» під Pieces > Type and Sizeменю. Потім ви вибираєте кількість рядків та роздільник ліній у шістнадцятковій. За замовчуванням він має формат Windows CR + LF ( 0x0D0x0A).
знесення нанівець

@ nullability спасибі - я б не думав про це. Але я знайшов набагато простіше рішення через утиліту GNU "розділити" - дивіться мою нову відповідь :-)
Flyto

9

Ознайомтеся з великим переглядачем текстових файлів , це чудово підходить для таких речей. Більшість архіваторів і розгалужувачів розділять файл на шматки, які неможливо використати для читання кожного фрагмента даних незалежно та належним чином, вам потрібно їх витягнути, щоб повернути файл назад.

alt текст

Переглядач великих текстових файлів безкоштовний і портативний.


3
Посилання , здається, зламана, це працює як зараз: softpedia.com/get/Office-tools/Other-Office-Tools / ...
huseyint

Оригінальне (чи відредаговане?) Посилання працює зараз; Я б взяв це посилання на софтпедію будь-якого дня! Крім того, щойно спробував LTFViewer, і це приголомшливо, відкрив файл розміром 818 МБ, на який навіть Notepad ++ поскаржився на відкриття. Не дуже вдалося редагувати функції, але коли я переглянув журнали в LTFViewer, echo. > myfile.txtвирішив проблему з журналом 818MB: D
Doktor J

LTFViewer дійсно чудовий (я його використовую), але є обмеження. Я спробував відкрити 3 ГБ SQL-файл, але він застигає. Мейбі мені не вистачило терпіння чи чогось іншого
Mathlight

LTFViewer дуже добре працював для мене. Я використав його на (відносно) меншому файлі, всього в 750 Мб, але він відкрив його за 5 секунд.
Mike_OBrien

Ви можете завантажити його з інтернет-архіву: web.archive.org/web/20151019115332/http://swiftgear.com
quip

8

Можна використовувати 7-Zip для створення сегментів текстового файлу певного розміру (наприклад, 100 МБ сегментів із файлу журналу 1,5 ГБ).

Основні параметри - Використовувати "Зберігати" на відміну від "Стиснути" - Використовувати "Розділити на обсяги"

Ви повинні мати можливість бачити текст у файлах .001 (.nnn).

введіть тут опис зображення


Додане зображення ідеально!
Ерік

5

Ви можете використовувати 7zip для розділення файлів. (Ви можете зберегти у форматі .zip або .7z.) Коли ви переходите до створення архіву, є опція, що називається "Розділити об'єм, байти". Просто виберіть, які великі шматки ви хочете.

І так, ви можете розпакувати їх окремо, якщо хочете.

Розділити файли в 7zip


1

Є інтернет-інструмент, який розбиває текстові файли, якщо хтось хоче швидко розділити файли. http://www.textfilesplitter.com .

Для мене чудово працює. І розбиває файли, поважаючи рядки, і це те, що я шукав. Він також говорить, що це все на стороні HTML5 клієнта, тому це безпечно у використанні. Я не впевнений, наскільки це може бути великим, але я думаю, що це залежить від оперативної пам’яті вашої машини.


4
Ви дійсно пропонуєте завантажити 9 Гб файл, щоб він був розбитий у вашому браузері ?? Дійсно ??
spaghettidba

@spaghettidba: Він каже, що це працює на стороні клієнта за допомогою HTML5. Якщо це так, то його не потрібно завантажувати. Зізнаюся, у мене була така ж реакція, що і у вас, коли я вперше прочитав відповідь.
mwolfe02

0

Ідея побачити частину файлу, перш ніж вирішити, що з ним робити, для мене найкращий варіант.

Додаток для перегляду великих текстів можна встановити на Windows через магазин Microsoft, і він пропонує можливість вирізати файл за розмірами. Цілком можливо, що він використовує той самий редактор, який згадувався раніше (за кадром), але можливість встановити його з відомого джерела краще IMHO, ніж запропоновані альтернативні посилання. Це чудово працювало для мене.

Єдине питання, якщо розділити за розміром, це те, що він не обов'язково розбиває файл у хорошому місці, тому вам, можливо, доведеться відредагувати його, щоб зафіксувати потрібний вміст.


1
Будь ласка , змініть свій відповідь , щоб включити назву програми, так що він може бути проіндексовані і знайдений при пошуку.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.