Перейти в прокрутку в шпатлевке?

1

У меня есть файл, содержащий много строк, например, 1 миллион строк, и он cat the_fileзанимает слишком много времени для прокрутки.

$ time cat 1m
......
cat 1m  0.00s user 11.21s system 28% cpu 38.839 total

Как сделать это быстрее? Как опция xScormm или urxvt jumpScroll?

Я использую PuTTY 0.62 и Windows 8 CP, если Windows 7 необходима, я могу изменить.


Вот код, который я использовал для создания файла:

#include <stdio.h>

int
main(void) {
        int i;
        for (i = 2; i < 999999; i++) {
                printf("%d\n", i);
        }
        return 0;
}
Мэнди Гао
источник
1
Обратите внимание, что если вы хотите видеть только последние строки в файле, tailкоманда лучше, чем catвесь файл в терминал.
Дэн Д.
@DanD, спасибо, что позволили мне понять, что tailи moreт. Д. Более полезны, чем мои мысли, я просто усложнил задачу ... Пришло время изменить некоторые параметры моей командной строки с помощью поведения. Однако этот вопрос продолжается, JumpScroll по-прежнему является очень необходимой функцией.
Мэнди Гао
Вы не сказали, какую часть файла вы хотите увидеть. Я предполагаю конец файла? Указанный номер строки?
серотонин
@serotonin Я не должен видеть какую-либо часть файла, я хочу catили запустить программу, которая выводит 1 миллион строк на стандартный вывод, и PuTTY стоит 38 секунд, чтобы завершить это, поэтому я спрашиваю, может ли это быть быстрее ,
Мэнди Гао

Ответы:

1

Ты не можешь Вот почему мы не должны входить в stdout из наших внутренних циклов.

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

Печать на стандартный вывод - это, по сути, просмотр файла. Запись в файл «вслепую» будет намного быстрее, но с этим временным запаздыванием, которое вы испытываете, довольно постоянное.

серотонин
источник
Поскольку я не использовал Putty в течение многих лет, я хотел бы закончить эту тему. IIRC, Putty уже предоставляет параметр, связанный с jumpScroll, пока вопрос был задан. Проблема в том, что реализация Putty не является оптимальной, поэтому, похоже, мы должны (и на самом деле должны) использовать tail/ lessи т.д. Этот ответ наиболее близок. :)
Mengdi Gao
0

1. Используйте программу, которая поддерживает Jumpscroll

Например, SecureCRT программного обеспечения Vandyke имеет несколько похожих функций звучания.

2. Выберите лучшее решение для целей

Никогда не имеет смысла, чтобы человек прочитал 1000000 строк текста менее чем за 38 секунд. Вы, вероятно, хотите:

  • Видимый индикатор текущего прогресса (указывает на то, что программа все еще работает)
  • Доступ к последним примерно 20 строкам текста, если программа приостановлена ​​или остановлена.

Обычно достаточно просто перенаправить вывод в файл. Вы можете контролировать размер файла, чтобы увидеть, растет ли он или статический.

При необходимости я написал бы небольшой скрипт, который считывает строки из STDIN, записывает точки в STDOUT (например, одну точку на n строк или одну точку, если в STDIN был введен в последнюю 1 / n-ю секунды) и сохраняет последние 20 строк для отображения при определенных обстоятельствах (EOF, получение сигнала и т. д.)

RedGrittyBrick
источник