Как просмотреть огромный текстовый файл через Vi или gedit

Я создал wordlist.txt 11 ГБ на crunch-3.6. Когда я пытаюсь открыть файл с помощью Vi или gedit, у меня возникают проблемы из-за размера файла. Как просмотреть этот файл?

19
задан 10 November 2017 в 02:18

6 ответов

Не используйте текстовый редактор для просмотра текста.

Есть лучшие инструменты:

Просмотр файлов с помощью less (Прокрутка с пробелом , End, Home, PageUp, PageDown; Поиск с "/ something"; оставить с q).

Из руководства less:

Меньше не нужно читать весь ввод файл перед запуском, поэтому с большими входными файлами он запускается быстрее, чем текстовые редакторы, такие как vi (1).

Использование:

less wordlist.txt

Рассмотрим использование less -n:

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

Подавляет номера строк. По умолчанию (для использования номеров строк) в некоторых случаях может работать медленнее, особенно с очень большим входным файлом. Подавление номеров строк с помощью опции -n позволит избежать этой проблемы.

-n или -line-numbers:

(спасибо за предложение -n option @pipe)

# Show all Lines beginning with A:
grep "^A:"  wordlist.txt

# Show all Lines ending with x and use less for better viewing
grep "x$"  wordlist.txt | less

Используйте grep, чтобы получить только интересующие вас строки:

head wordlist.txt
tail -n 200 wordlist.txt

Используйте head или tail, чтобы получить первую или последнюю n строк

39
ответ дан 22 May 2018 в 16:23
  • 1
    Обратите внимание, что more загрузит весь файл в памяти, в отличие от less. Если это так, я бы посоветовал не использовать его. Лучшим вариантом было бы, безусловно, использовать grep. – Nepho 9 November 2017 в 17:06
  • 2
    Мой комментарий может быть ложным. Я начал проверять исходный код more и less, и оба, похоже, используют либо open, либо fopen, что ничего не меняет в отношении способа загрузки файла, насколько я знаю – Nepho 9 November 2017 в 17:17
  • 3
    Согласовано. more - очень устаревшая утилита, если доступно less, я не думаю о какой-либо причине, по которой вы бы использовали more. – Nepho 9 November 2017 в 17:18
  • 4
    @Nepho, more имеет одно огромное преимущество перед less: он не поддерживает препроцессор ввода LESSOPEN. Если вы пытаетесь просмотреть исходный текст справочной страницы или что-то еще, гораздо быстрее набрать more my_docs.man, чем прорыть документацию less, чтобы выяснить, как подавить препроцессор. – Mark 10 November 2017 в 03:34
  • 5
    Я предлагаю ссылаться на меньше , используя что-то вроде less -nS для огромных файлов, чтобы немного ускорить работу. – pipe 10 November 2017 в 16:09

Не используйте текстовый редактор для просмотра текста.

Есть лучшие инструменты:

Просмотр файлов с помощью less (Прокрутка с пробелом , End, Home, PageUp, PageDown; Поиск с "/ something"; оставить с q).

Из руководства less:

Меньше не нужно читать весь ввод файл перед запуском, поэтому с большими входными файлами он запускается быстрее, чем текстовые редакторы, такие как vi (1).

Использование:

less wordlist.txt

Рассмотрим использование less -n:

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

Подавляет номера строк. По умолчанию (для использования номеров строк) в некоторых случаях может работать медленнее, особенно с очень большим входным файлом. Подавление номеров строк с помощью опции -n позволит избежать этой проблемы.

-n или -line-numbers:

(спасибо за предложение -n option @pipe)

# Show all Lines beginning with A: grep "^A:" wordlist.txt # Show all Lines ending with x and use less for better viewing grep "x$" wordlist.txt | less

Используйте grep, чтобы получить только интересующие вас строки:

head wordlist.txt tail -n 200 wordlist.txt

Используйте head или tail, чтобы получить первую или последнюю n строк

39
ответ дан 18 July 2018 в 03:36

Не используйте текстовый редактор для просмотра текста.

Есть лучшие инструменты:

Просмотр файлов с помощью less (Прокрутка с пробелом , End, Home, PageUp, PageDown; Поиск с "/ something"; оставить с q).

Из руководства less:

Меньше не нужно читать весь ввод файл перед запуском, поэтому с большими входными файлами он запускается быстрее, чем текстовые редакторы, такие как vi (1).

Использование:

less wordlist.txt

Рассмотрим использование less -n:

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

Подавляет номера строк. По умолчанию (для использования номеров строк) в некоторых случаях может работать медленнее, особенно с очень большим входным файлом. Подавление номеров строк с помощью опции -n позволит избежать этой проблемы.

-n или -line-numbers:

(спасибо за предложение -n option @pipe)

# Show all Lines beginning with A: grep "^A:" wordlist.txt # Show all Lines ending with x and use less for better viewing grep "x$" wordlist.txt | less

Используйте grep, чтобы получить только интересующие вас строки:

head wordlist.txt tail -n 200 wordlist.txt

Используйте head или tail, чтобы получить первую или последнюю n строк

39
ответ дан 24 July 2018 в 17:53

Часто достаточно «grep», чтобы найти то, что вам нужно.

Если вам нужно больше «контекста» вокруг определенной строки, используйте «grep -n», чтобы найти номера строк интересующих строк, а затем используйте sed, чтобы распечатать «кусок» файла вокруг этой строки:

$ grep -n 'word' file 
123:A line with with word in it 

$ sed -n '120,125p' file 
A line 
Another line
The line before
A line with with word in it 
The line after
Something else
7
ответ дан 22 May 2018 в 16:23
  • 1
    нет необходимости в sed, вы можете использовать grep -B и -A для печати строк B efore и A fter ... – RoVo 9 November 2017 в 16:23
  • 2
    @RoVo Или -C для C hunk (как до, так и после). – wjandrea 10 November 2017 в 01:28

Часто достаточно «grep», чтобы найти то, что вам нужно.

Если вам нужно больше «контекста» вокруг определенной строки, используйте «grep -n», чтобы найти номера строк интересующих строк, а затем используйте sed, чтобы распечатать «кусок» файла вокруг этой строки:

$ grep -n 'word' file 123:A line with with word in it $ sed -n '120,125p' file A line Another line The line before A line with with word in it The line after Something else
7
ответ дан 18 July 2018 в 03:36

Часто достаточно «grep», чтобы найти то, что вам нужно.

Если вам нужно больше «контекста» вокруг определенной строки, используйте «grep -n», чтобы найти номера строк интересующих строк, а затем используйте sed, чтобы распечатать «кусок» файла вокруг этой строки:

$ grep -n 'word' file 123:A line with with word in it $ sed -n '120,125p' file A line Another line The line before A line with with word in it The line after Something else
7
ответ дан 24 July 2018 в 17:53
  • 1
    нет необходимости в sed, вы можете использовать grep -B и -A для печати строк B efore и A fter ... – RoVo 9 November 2017 в 16:23
  • 2
    @Рово или [F1] для себя скрасавчик (как до, так и после). – wjandrea 10 November 2017 в 01:28

Другие вопросы по тегам:

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