Как использовать `cat`, чтобы увидеть верх очень длинного файла?


18

Я хотел бы знать, как

cat my-verylong-file

и покажи его сверху, а не с конца. Как команда man делает.


5
Для полноты, есть также moreкоманда ... но так как moreона менее способна чем less, очень верно, что "чем меньше, тем лучше". Наконец, есть и pgдля «страницы». Вы также можете использовать эти команды с трубами - например. ls -l | lessразбить очень длинный список файлов на несколько страниц. И вы могли бы даже использовать cat my-verylong-file | less.
Baard Kopperud

Также стоит отметить, что «по умолчанию man использует / usr / bin / less -is». man man).
Цифровая травма

Ответы:


43

Используйте less, который покажет файл сверху, позволяя вам прокручивать его, как man:

less my-verylong-file
  • Нажмите qдля выхода.

Если вам просто интересно увидеть n первых строк файла, headможет быть альтернатива:

head -n 25 filename

покажет 25 первых строк файла.

То же самое для n последних строк файла с tail:

tail -n 25 filename

2
lessможет также использоваться для прокрутки очень длинных выводов команд. Здесь представлен пример: ls -laR --color=always ~/ | less -R.
pa4080

2
И имя команды "less" является каламбуром для имени команды "more" (которое она более или менее заменяет), которое, в свою очередь, было названо из приглашения "--More", которое она дала. Под MacOS кажется, что «больше» - это тот же двоичный файл, что и «меньше», поэтому метаморфоза завершена :)
Торбьерн Равн Андерсен

5
Итак, более или менее то же самое?
Райан Лич

1
@ pa4080: вы можете настроить lessтак -R, включен по умолчанию. Смотри мой ответ.
Питер Кордес

@RyanTheLeach more и less : то же самое :)
chepner

11

manless(1)по умолчанию используется как пейджер. Используйте это вместо cat. Смотрите также ответ @ vidarlo .

Как настроить, lessчтобы сделать его еще лучше:

Мне нравится alias m=less, так что это просто однобуквенная команда, потому что я все время ее печатаю. Помещение |mв конце чего-либо трубок это в пейджер.

Вы можете поместить параметры как -iMRj5Xв псевдоним (например alias m='less -iMRX), но я делаю это с моим ~/.lesskeyфайлом. (См. lesskey(1))

  • -i: при поиске регистр не учитывается (если вы не используете заглавные буквы)
  • -M: более длинная строка состояния, показывающая номер строки и процент файла
  • -R: пропустить некоторые управляющие коды, чтобы можно было преобразовывать цветные команды в меньшее.
  • -X: не переключайтесь на «альтернативный» экран эмулятора терминала, так что все, на что вы смотрели, все равно будет там, когда вы qвыйдете из него less. (отлично подходит для справочных страниц после того, как вы нашли нужный вариант и хотите посмотреть его во время ввода.)
  • -j5: поиск ставит целевую строку в строке 5 вместо верхней части экрана. Таким образом, вы можете увидеть контекст с обеих сторон вашего результата поиска. (Иногда я изменяю это в интерактивном режиме, набирая -j40или что-то внутри less, если наиболее полезно увидеть контекст перед поиском).

Я также связываться .с next-file, и ,к prev-file, потому что привязки по умолчанию являются две отдельных символов , которые гораздо медленнее типа: :nи :p.


Это мой .lesskey:

$ cat .lesskey
. next-file
, prev-file
#env
LESS = iMRj5X

Запустите, lesskeyчтобы «скомпилировать» его в ~/.less.

Это, вероятно, имело значение более 20 лет назад, но lessчитает этот двоичный файл вместо анализа текстового конфигурационного файла при каждом запуске.


@Dan: добавлена ​​строка вверху, чтобы этот ответ мог стоять как ответ на вопрос. Я думал, что оставив эту часть неявной было бы достаточно, учитывая другой ответ, но если я не возражаю, чтобы сделать это явным, если это беспокоит вас.
Питер Кордес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.