У меня есть файл, содержащий много строк, например, 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;
}
tail
команда лучше, чемcat
весь файл в терминал.tail
иmore
т. Д. Более полезны, чем мои мысли, я просто усложнил задачу ... Пришло время изменить некоторые параметры моей командной строки с помощью поведения. Однако этот вопрос продолжается, JumpScroll по-прежнему является очень необходимой функцией.cat
или запустить программу, которая выводит 1 миллион строк на стандартный вывод, и PuTTY стоит 38 секунд, чтобы завершить это, поэтому я спрашиваю, может ли это быть быстрее ,Ответы:
Ты не можешь Вот почему мы не должны входить в stdout из наших внутренних циклов.
Значимое ведение журнала может быть реализовано с помощью модульных операций, но я получил из ваших комментариев, что вы спрашиваете, можете ли вы ускорить замазку.
Печать на стандартный вывод - это, по сути, просмотр файла. Запись в файл «вслепую» будет намного быстрее, но с этим временным запаздыванием, которое вы испытываете, довольно постоянное.
источник
tail
/less
и т.д. Этот ответ наиболее близок. :)1. Используйте программу, которая поддерживает Jumpscroll
Например, SecureCRT программного обеспечения Vandyke имеет несколько похожих функций звучания.
2. Выберите лучшее решение для целей
Никогда не имеет смысла, чтобы человек прочитал 1000000 строк текста менее чем за 38 секунд. Вы, вероятно, хотите:
Обычно достаточно просто перенаправить вывод в файл. Вы можете контролировать размер файла, чтобы увидеть, растет ли он или статический.
При необходимости я написал бы небольшой скрипт, который считывает строки из STDIN, записывает точки в STDOUT (например, одну точку на n строк или одну точку, если в STDIN был введен в последнюю 1 / n-ю секунды) и сохраняет последние 20 строк для отображения при определенных обстоятельствах (EOF, получение сигнала и т. д.)
источник