Poderia mostrar menos a proporção visualizada do arquivo de texto?

18

Como o título indica, quando estou navegando em um arquivo de texto, gostaria de saber a parte exibida atualmente do arquivo de texto inteiro.

Sei que com a opção -N, poderíamos ativar os números de linha, mas como eu poderia fazer menos exibir o número da linha do arquivo de texto inteiro?

obrigado.

Jichao
fonte

Respostas:

19

Se você abrir um arquivo com menos, pressionar Ctrl-g exibirá o número da linha atual, o total de linhas e a porcentagem, como mostrado abaixo:

linhas 51-100 / 185 bytes 3228/5886 54% (pressione RETURN)

secureBadshah
fonte
11
Depois de revisitar a página de manual, encontre-a e obtenha os outros dois comandos iguais ': f' e '='. desculpe por isso.
Jichao 03/11/2009
11
Infelizmente, ele não funciona através de pipes, nem com o parâmetro -M ou -m da outra resposta. Por exemplo wdiff version1.txt version2.txt | colordiff | less -RM, não mostra a porcentagem. Deixe-me saber se alguém tem uma solução ou solução alternativa para isso. Atualização: a solução é adicionar + Gg como outra resposta explicada.
baptx
18

Você quer dizer com o -Minterruptor?

Urso de pelúcia
fonte
É exatamente o que eu quero!
Jichao 03/11/2009
Ou -mse o número da linha não for necessário.
Franklin Yu
11
Você tem uma idéia se existe uma solução ou solução alternativa para exibir a porcentagem ao usar tubos? Por exemplo, não consigo ver a porcentagem de um diff colorido com este comando: wdiff version1.txt version2.txt | colordiff | less -RMAtualização: a solução é adicionar + Gg como outra resposta explicada.
baptx
6

less -M +Gg

por não arquivos muito grandes que é OK, porque +G( Gde comando) ir até o fim do arquivo

ALZ
fonte
11
Ótimo para $MANPAGERembora! Veja man man.
Tom Hale
Ótimo para colordifftambém! Por exemplo:wdiff version1.txt version2.txt | colordiff | less -RM +Gg
baptx 5/06/19
4

Apenas expandindo um pouco as respostas anteriores. Linha de comando:

less -M +Gg

faz o seguinte:

-M Mostra a posição atual dentro do arquivo nos comandos prompt + Gg RunG (vá para o final do arquivo) e g(volte para o início do arquivo)

Se lessestiver lendo a partir de stdin, o que acontece quando manestá mostrando uma página de manual, ele não sabe o número total de linhas no arquivo com antecedência, para que possa calcular corretamente sua posição. Portanto, +Ggé necessário para queless obter o número total de linhas e, assim, calcular a posição atual como uma porcentagem.

Achei útil definir essas variáveis ​​em ~ / .bashrc :

export LESS+='-M'
export MANPAGER='less +Gg'

LESSgarantirá que todas as chamadas de lessmostrarão a posição atual no prompt e MANPAGERgarantirá que lessserá possível obter o número total de linhas na página de manual, que lessserá exibida no prompt. Parecia ser mais sensato não incluir +Ggno LESSpara impedir lessde tentar ir até o fim de potencialmente grande de entrada encanada. Se isso for necessário, pode-se sempre executar os comandos Ge gmanualmente.

Paulo Marcel Coelho Aragão
fonte
+1 para a maneira manual, pressione #Gg
wisbucky
Por que coloque um sinal de mais "MENOS +" no seu exemplo? Não basta escrever "export LESS = 'M'"?
db
@Db, MENOS + = '- M' anexará opção -M para qualquer opções tenham sido previamente ajustado para menos
Paulo Marcel Coelho Aragão