Isso não é exatamente o que você pediu, mas eis o que eu faço:
Canalize a saída em less com a opção -S (linhas longas):
my_command_that_outputs_tables | less -S
Em seguida, dentro do visualizador less , as teclas de cursor para a esquerda / para a direita "rolam" para a esquerda e para a direita pelos seus dados, mais ou menos uma página por vez. Bata q para sair ou ? para ajuda.
E aqui está como fazer o que você quer:
my_command_that_outputs_tables | expand | tee >(cut -c1-79) >(sleep 1; cut -c80-159) | {sleep 2; cut -c160-}
Este exemplo é para dados com até três telas de 80 colunas de largura, com paradas de tabulação de 8 espaços.
-
expandconverte guias em espaços. Sem esses dados com guias, não caberia no terminal. -
teeduplica os dados em três fluxos idênticos, neste caso; dois como "arquivos", um como stdout. Você pode adicionar quantas saídas "arquivo" quiser. -
>(...)é a sintaxe bash para tratar um arquivo de saída como se fosse um pipe. -
sleep 1esleep 2são atrasos que fazem as páginas saírem na ordem correta. Isso é um pouco complicado; pode haver uma maneira melhor. -
cut -cM-Nretira uma fatia vertical da entrada.Mé a primeira coluna, contada a partir de 1 eNé a última coluna. SeNfor omitido, ele levará todos os caracteres até o final da linha.
Então, ele pega seus dados, duplica-os em três fluxos e, em seguida, divide cada fluxo verticalmente.