Как разбить большой файл на Windows?

75

Существует ли инструмент для разделения большого текстового файла (9 ГБ) на файлы меньшего размера, чтобы я мог открыть его и просмотреть?

Что-нибудь пригодное для использования из командной строки, которое поставляется с Windows (XP)?

Или как лучше разделить это? Могу ли я использовать 7z для создания отдельных томов, а затем распаковать один из них отдельно? Будет ли он читаемым или ему понадобятся все остальные части, чтобы снова распаковать в большой файл?

Обновить

Я собрал быстрый 48-строчный Python-скрипт, который разбивает большой файл на файлы размером 0,5 ГБ, которые легко открывать даже в vim. Мне просто нужно просмотреть данные к последней части журнала (да, это файл журнала). Каждая запись разбита на несколько строк, поэтому grep не будет делать.

stefanB
источник
Я вижу, вы отредактировали, чтобы упомянуть grep. У вас установлен Cygwin или unxutils? Вы могли бы использовать grep -nс headи, tailчтобы увидеть куски файла. Пример, grep -n "something" file.txtвозвращает 95625: something. Вы хотите , чтобы увидеть эту строку и 9 строк ниже него в общей сложности 10 линий: head -n 95635 file.txt | tail -n 10.
Джон Т
Я заметил, что вы решили свою проблему. Если вы все еще здесь, не могли бы вы опубликовать решение, чтобы другие могли извлечь выгоду?
Подмастерье Компьютерщик
Это было обсуждено более подробно в Переполнении стека [1] [1]: stackoverflow.com/questions/159521/…
Риши Дуа

Ответы:

43

Существует бесплатный разветвитель файлов Windows под названием HJSplit.

Доступно здесь . Веб-сайт утверждает, что может разбивать файлы любого типа и размера, но 9 ГБ - это большой файл.

pavium
источник
1
По словам издателя, он поддерживает разбиение файлов «более 100 гигабайт»
yosh m
8
Я смог использовать эту программу, чтобы разбить большой файл на более мелкие части, но только по размеру (кБ или МБ). Он не учитывает строки, поэтому он не очень полезен для разделения файлов журнала. Это также очень медленно.
обнуляемость
HJSplit работает так некрасиво ... Не работает с 5Gb + файлами. Большая часть файла просто проигрывает. Чанк останавливает счетчик ноффусов после 999, и что-то еще не срабатывает, если использовать большие пизы
user2602807
На 64-битных системах он работает только с графическим интерфейсом в Windows. Если вы хотите автоматизировать вещи, это не решение проблемы
576i
24

Пакет GNU Core Utils (доступен здесь для Windows) включает в себя утилиту 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 download также включает утилиту.
эйс
Cmder удивительно для этого
умбра Ferrule
15

Другой - GSplit - в соответствии с их сайтом он может разбивать очень большие файлы (больше чем 4 ГБ <- поскольку они превысили предел 4 ГБ, я думаю, что они также могут делать 9 ГБ).

Но, другое дело - вы говорите, что хотите разбить его на более мелкие части, чтобы вы могли открыть его и посмотреть на него. Это звучит как очень большой, возможно, файл журнала.

В любом случае, для открытия больших текстовых файлов я могу порекомендовать EmEditor - они утверждают, что он может открывать очень большие файлы (до приблизительно 250 ГБ), и я использовал его в прошлом для файлов до 2 ГБ. Но в любом случае, я думаю, что это может быть лучшим решением, чем расщепление.

ладья
источник
Я только что попробовал GSplit. Он работает, хотя и через запутанный интерфейс, но не предлагает никакого способа разделения только на разрыв строки - для разделения файлов данных ASCII, поэтому он не слишком полезен, так как разделение будет на половине пути через строку.
Flyto
1
@Flyto Это на самом деле это можно разделить на линии , если вы выбираете «Разделить После появления Номер» под Pieces > Type and Sizeменю. Затем вы выбираете количество строк и разделитель строк в шестнадцатеричном формате. По умолчанию он имеет формат Windows CR + LF ( 0x0D0x0A).
обнуляемость
@ nullability спасибо - я бы не подумал об этом. Но я нашел гораздо более простое решение с помощью утилиты «split» GNU - см. Мой новый ответ :-)
Flyto
9

Проверьте Средство просмотра больших текстовых файлов , оно отлично подходит для таких вещей. Большинство архиваторов и разделителей разделяют файл на части, которые нельзя использовать для независимого и правильного чтения каждого фрагмента данных, вам нужно извлечь их все, чтобы получить файл обратно.

альтернативный текст

Большой текстовый файл просмотра является бесплатным и портативным.

Джон Т
источник
3
Ссылка, кажется, не работает, это работает на данный момент: softpedia.com/get/Office-tools/Other-Office-Tools/…
huseyint
Оригинальная (или отредактированная?) Ссылка работает сейчас; Я бы взял эту ссылку на softpedia в любой день! Кроме того, только что попробовал LTFViewer, и это здорово, открыл файл 818 МБ, который даже Notepad ++ жаловался на открытие. Не так много в редактировании функций, но как только я просмотрел логи в LTFViewer, я echo. > myfile.txtрешил проблему с 818 МБ журнальным файлом: D
Доктор J
LTFViewer действительно хорош (я использую его для), но есть предел. Я попытался открыть файл 3 ГБ SQL с ним, но он зависает. Может, мне не хватило терпения или чего-то еще ...
Mathlight
LTFViewer работал очень хорошо для меня. Я использовал его для (относительно) меньшего файла, всего 750 МБ, но он открыл его менее чем за 5 секунд.
Mike_OBrien
Вы можете скачать его из архива Интернета: web.archive.org/web/20151019115332/http://swiftgear.com
язвительно
8

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

Ключевыми параметрами являются - Использование «Store» вместо «Compress» - Использование «Split to volume»

Вы должны видеть текст в файлах .001 (.nnn).

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

Mehul
источник
Прикрепленное изображение идеально!
Эрик
5

Вы можете использовать 7zip для разделения файлов. (Вы можете сохранить в формате .zip или .7z.) При создании архива есть опция «Разделить объем, байты». Просто выберите, насколько большой вы хотите куски.

И да, вы можете разархивировать их по отдельности, если хотите.

Сплит файлы в 7zip

Феликс
источник
1

Существует онлайн-инструмент, который разбивает текстовые файлы, если кто-то хочет быстро разбить файлы. http://www.textfilesplitter.com .

Прекрасно работает для меня. И разбивает файлы по строкам, что я и искал. Он также говорит, что все это на стороне клиента HTML5, поэтому его можно использовать безопасно. Я не уверен, насколько большой это может пойти, но я думаю, что это зависит от барана вашей машины.

Джо Один
источник
4
Вы действительно предлагаете загрузить файл размером 9 ГБ, чтобы разделить его в своем браузере? В самом деле??
Спагеттидба
@spaghettidba: он говорит, что работает на стороне клиента, используя HTML5. Если это так, то его не нужно загружать. Признаюсь, у меня была такая же реакция, как и у вас, когда я впервые прочитал ответ.
mwolfe02
0

Идея увидеть часть файла перед тем, как решить, что с ним делать, является для меня лучшим вариантом.

Приложение просмотра большого текста можно установить в Windows через Microsoft Store и предлагает возможность разрезать файл на куски по размеру. Вполне возможно, что он использует тот же редактор, который упоминался ранее (за кулисами), но возможность установить его из известного источника лучше ИМХО, чем предлагаемые альтернативные ссылки. Это прекрасно сработало для меня.

Единственная проблема при разделении по размеру заключается в том, что он не обязательно разбивает файл в хорошем месте, поэтому вам, возможно, придется отредактировать его, чтобы получить именно тот контент, который вы хотите.

Лео
источник
1
Пожалуйста , измените свой ответ , чтобы включить имя приложения, так что он может быть проиндексирован и найден при поиске.
Скотт