Imprimir um arquivo em várias colunas com base no delimitador
Parece uma tarefa simples, mas usando o duckduckgo não consegui encontrar uma maneira de fazer corretamente o que estou tentando.
A principal questão é: Como dividir a saída de um comando no linux ou bash em várias colunas usando um delimitador?
Eu tenho um arquivo que se parece com isso: (este é apenas um exemplo simplificado)
-----------------------------------
Some data
that varies in line length
-----------------------------------
-----------------------------------
More data that is seperated
by a new line and dashes
-----------------------------------
E assim por diante. Sempre que os dados são gravados no arquivo, eles são colocados em uma linha de traços, separados por uma linha vazia do último bloco. O comprimento da linha dos dados varia. O que eu quero é basicamente uma ferramenta ou maneira usando bash para dividir o arquivo em várias colunas como esta:
----------------------------------- -----------------------------------
Some data More data that is seperated
that varies in line length by a new line and dashes
----------------------------------- -----------------------------------
Cada coluna deve ocupar 50% da tela, sem necessidade de centralização (como no alinhamento). O arquivotem ser divididopor bloco. Dividir o arquivo no meio ou algo assim não funcionará. Eu basicamente quero que o bloco 1 vá para a coluna da esquerda, o bloco 2 para a direita, 3 para a esquerda novamente, 4 para a direita e assim por diante. O arquivo é atualizado constantemente e as atualizações devem ser gravadas na tela imediatamente. (Atualmente estou usandotail -f
)
Como isso soa como uma pergunta bastante comum, eu gostaria de receber uma abordagem geral disso, em vez de uma resposta específica que funcione apenas para o meu caso, para que pessoas vindas de mecanismos de busca que procurem uma maneira de ter um layout de duas colunas no bash também obtenham algumas informações. eu tenteicolumn
epr
, ambos não funcionam como desejado. (Eu elaborei isso nos comentários)
Editar: Para ser claro, estou procurando umgeral abordagem sobre isso. Percorrendo um arquivo, obtendo dados entre o delimitador, colocando-o na coluna A, obtendo o próximo colocando-o na coluna B e assim por diante.