Como usar o 'cat' para ver o topo de um arquivo muito longo?

15

Eu gostaria de saber como

cat my-verylong-file

e mostre a partir do topo, em vez do fim. Como o comando man faz.

    
por IDK 17.09.2017 / 11:09

2 respostas

38

Use less , que mostrará o arquivo na parte superior, permitindo que você role por ele, assim como man :

less my-verylong-file
  • Pressione q para sair.

Se você está interessado apenas em ver as primeiras linhas de um arquivo, head pode ser uma alternativa:

head -n 25 filename

mostrará as 25 primeiras linhas do arquivo.

Mesma coisa para as últimas n linhas de um arquivo com tail :

tail -n 25 filename
    
por vidarlo 17.09.2017 / 11:21
9

man usa less(1) como um pager por padrão. Use em vez de cat . Veja também @ vidarlo's answer .

Como personalizar o less para torná-lo ainda melhor:

Eu gosto de alias m=less , então é apenas um comando de uma única letra, porque eu o digito o tempo todo. Colocar um |m no final de qualquer coisa canaliza para um pager.

Você pode colocar opções como -iMRj5X no alias (por exemplo, alias m='less -iMRX ), mas faço isso com meu arquivo ~/.lesskey . (Veja lesskey(1) ).

  • -i : as pesquisas diferenciam maiúsculas de minúsculas (a menos que você use letras maiúsculas)
  • -M : linha de status mais longa, mostrando o número da linha e a porcentagem do arquivo
  • -R : permite alguns códigos de controle, para que você possa canalizar comandos coloridos em menos.
  • -X : não mude para a tela "alternativa" do emulador de terminal, portanto, o que quer que você esteja vendo ainda estará lá quando você q uit sair de less . (ótimo para man pages depois de encontrar a opção desejada e deseja examiná-la ao digitá-la.)
  • -j5 : as pesquisas colocam a linha de destino na linha 5 em vez da parte superior da tela. Assim, você pode ver o contexto em ambos os lados do resultado da pesquisa. (Às vezes, altero isso interativamente, digitando -j40 ou algo dentro de less , se for mais útil ver o contexto antes de um hit de pesquisa).

Eu também vinculo . a next-file e , a prev-file , porque as ligações padrão são dois caracteres separados que são muito mais lentos para serem digitados: :n e :p .

Este é o meu .lesskey :

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

Execute lesskey para "compilar" em ~/.less .

Isso provavelmente importou mais 20 anos atrás, mas less lê esse arquivo binário em vez de analisar um arquivo de configuração de texto toda vez que ele é iniciado.

    
por Peter Cordes 18.09.2017 / 09:48