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

7335
Chris Salij

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

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

Мне не обязательно редактировать его, просто просматривать его части. Все, что я пробовал, TextMate, Vim и т. Д. И т. Д. Все (по понятным причинам) дерьмо или загрузить навсегда.

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

14
Похож на http://superuser.com/questions/138474/very-large-text-files-and-snow-leopard, но этот вопрос также принимает альтернативу для разделения файла Doug Harris 14 лет назад 0

5 ответов на вопрос

16
redacted

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

 split -b 200m [file] 

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

 split -l 1000 [file] 

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

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

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

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

Это работает как шарм. Спасибо Chris Salij 14 лет назад 0
Это Unix, поэтому он должен работать. :) maaartinus 13 лет назад 0
Hex Friend просто потрясающий !! Большое спасибо за упоминание lukaswelte 10 лет назад 1
3
dtlussier

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

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

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

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

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

2
Chealion

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

2
Eric Darchis

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

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

head -1000 hugefile 

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

tail -1000 hugefile 

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

head -1001000 hugefile | tail -1000 

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

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

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

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

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

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

Похожие вопросы