Открыть массивный файл на Mac?

14

Я хочу открыть массивный текстовый файл на моем Mac. Файл чуть более 10 гигов. Я не буду вдаваться в подробности того, как он был создан или для чего он используется, поскольку он не имеет отношения к вопросу.

Существуют ли программы для Mac, которые позволят мне открыть такой массивный файл или, возможно, разбить его на куски (скажем, 200 МБ или что-то в каждой), которые было бы легче открыть по отдельности.

Мне не обязательно редактировать его, просто просматривать его части. Все, что я пробовал, Textmate, Vim и т.д.

Я также использую Windows и Linux, но перемещать такой большой файл нелегко. В настоящее время он находится на моем Mac, и я бы не стал беспокоиться о его перемещении.

Крис Салидж
источник
Аналогично superuser.com/questions/138474/… , но этот вопрос также принимает альтернативу для разделения файла
Даг Харрис

Ответы:

16

Сплит может сделать это -

 split -b 200m [file]

разделит файл на куски по 200 МБ. Вы можете разделить на строки с -l

 split -l 1000 [file]

разделит файл на 1000 строк.

Если это не сработает, есть действительно хороший шестнадцатеричный редактор для Mac, Hex Fiend, который может открывать массивные файлы:

Работа с огромными файлами. Hex Fiend может обрабатывать как большие файлы, сколько вы можете создать. Он был протестирован на файлах размером до 118 ГБ.

Надеюсь, это поможет!

УДАЛЕНО
источник
Это Unix, поэтому он должен работать. :)
maaartinus
1
Hex Friend просто потрясающий !! Большое спасибо за упоминание
lukaswelte
3

Вы пробовали любой из следующих инструментов командной строки:

  • sedили awk: потоковые редакторы, но иногда они могут требовать сложных выражений для получения желаемого результата
  • split: разбивает файлы на блоки с заданным количеством байтов, строк и т. д.
  • csplit: разбивает файл на основе контекста, заданного регулярным выражением

Один из splitили csplitможет сделать работу, в зависимости от того, как они управляют использованием памяти. Проверьте эту страницу для получения дополнительной информации о splitиcsplit .

Для получения дополнительной информации об этих инструментах попробуйте ваш любимый поисковик или введите man <cmd-name>в командной строке в терминале.

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

dtlussier
источник
2

Я бы порекомендовал проверить HexFiend - хотя он и шестнадцатеричный редактор, он читает файл прямо с жесткого диска и не пытается загрузить его в память, как большинство других текстовых редакторов. Если вы хотите скрыть шестнадцатеричную часть, снимите флажок «Шестнадцатеричный» в меню «Вид».

Chealion
источник
2

Другим вариантом будет использование встроенных команд head и tail .

Чтобы получить первые 1000 строк:

head -1000 hugefile

Чтобы получить последние 1000 строк:

tail -1000 hugefile

Или получить строки от 1 000 000 до 1 001 000:

head -1001000 hugefile | tail -1000

Это может занять довольно много времени.

Эрик Дарчис
источник
Мне нравится этот вариант. Если бы я только хотел взять несколько кусков за раз. Сейчас это не подходит для моих целей, но я буду демонстративно использовать его в будущем :) Спасибо
Крис Салидж
0

Мне нужно в своей работе просматривать огромные текстовые файлы, и я годами искал альтернативы, хотя только в Windows.

Единственный текстовый редактор, который я когда-либо нашел, который действительно мог эффективно работать с большими файлами - это V - The File Viewer .

Несмотря на то, что он коммерческий, он стоит 20 долларов, если вам нужно часто редактировать такие файлы.
Если вам нужно просмотреть только один конкретный файл, он имеет полнофункциональную пробную версию.

Передача 10 ГБ по сети на компьютер с Windows не должна быть слишком медленной.

harrymc
источник