14

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

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

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

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

5 ответов5

16

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

 split -b 200m [file]

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

 split -l 1000 [file]

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

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

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

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

3

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

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

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

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

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

2

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

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 не должна быть невыносимо медленной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .