При просмотре содержимого файлов я хотел бы автоматически cat
сокращать файлы, кроме less
тех, которые превышают размер экрана. Я мог бы использовать что-то с wc -l
, но есть ли лучший способ, который, возможно, также учитывает размер окна / текущее количество доступных строк?
12
git log
котором делает именно эту вещь. Вы никогда не знаете заранее, что вы получите (вы должны ударитьq
?).cat
файлов для просмотра. Как правило, вы должны использовать толькоcat
для отправки содержимого файла на стандартный вывод, чтобы он мог быть передан другому процессу. Причина, по которой следует избегать использованияcat
для просмотра, заключается в том, что он отправляет необработанные байты на терминал, что может привести к неожиданному выполнению команд терминала (например, некоторые пользователи застряли, когда файл содержит правильные байты для отключения клавиатуры терминала). , Обычно вы должны использовать пейджерless
или редактор, который будет форматировать специальные символы для отображения, чтобы они не интерпретировались терминалом.cat -v
его, чтобы он не содержал специальных символов.cat
? что может быть лучшим решениемcat -v
изОтветы:
Чтобы дать вам формулу, которая включает
wc
проверку на основе:Существует
$LINES
переменная оболочки, которая также может быть использована:Но
$LINES
обновляется только когда в командной строке. Чтобы понять, что я имею в виду, запустите это и измените размер окна терминала во времяsleep
:источник
less
уже, если, например, 2/3 экрана были использованыcat
.Может быть, опция 'less -F file_to_read': меньше, если окно достаточно для отображения всего файла, и ждать на пейджере, если это не так
источник
-X
опции остановит очистку, поэтому короткие файлы будут отображаться, как этоcat
происходит. К сожалению с-X
экрана не очистится ни после отображения длинных, прокручиваемых файлов.cat
его тоже