Sempre que algum comando gera linhas longas como saída (por exemplo, quando ls -l
uma pasta contém arquivos com nomes longos), as linhas longas são agrupadas na próxima linha, prejudicando a estrutura da coluna.
Existe alguma maneira de evitar isso? Algo parecido com a opção 'nowrap' vim?
atualizar
Percebi um problema com a resposta aceita:
se eu criar um apelido como: alias ll="tput rmam; ls -l; tput smam"
e depois tentar grep sua saída: ll | grep foo
ele ainda imprimirá todos os arquivos, como sem o grep.
A solução que encontrei é colocar colchetes em todo o alias:
alias ll="(tput rmam; ls -l; tput smam)"
command-line
bash
Mihai Rotaru
fonte
fonte
Respostas:
Observe que isso não tem nada a ver com o bash (depois que você inicia o comando, o bash espera apenas que ele termine) e tudo a ver com o terminal.
A maioria dos emuladores de terminal envolve a margem direita por padrão. Mas isso pode ser desativado usando a sequência de controle apropriada , se o emulador de terminal suportar; as linhas longas são simplesmente truncadas:
fonte
tput rmam; ls -l longname; tput smam
man 5 terminfo
no Linux).Se você quiser fazer rolagem horizontal em vez de truncar as linhas, use
less -S
.fonte
Você poderia usar uma função assim:
lembre-se de que você precisará prefixar comandos com
nowrap
ou qualquer que seja o nome da função.fonte
Você pode substituir uma função para que ela seja executada automaticamente
tput rmam
antes do grep etput smam
depois:Deixe isso no seu
.bash_profile
e sempre que você executargrep
, ele será recebido sem quebra de linha.Isso foi muito editado, desculpas aos comentaristas.
fonte
sleep 20
is amazing :-)canalize-o para menos comando com a opção -S:
Em seguida, você pode usar as setas para cima / baixo / esquerda / direita para rolar e digitar q para sair.
fonte
Tente isto
fonte