Eu sei que pr -m -t file1 file2
isso me dará 2 colunas assim:
arquivo1:
a
abc
abcdefg
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
arquivo2:
1
123
12345678
12345678901234567890
-
$ pr -m -t file1 file2
a 1
abc 123
abcdefg 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890
Acima está um recortar e colar literalmente, mas aqui adicionei espaços para mostrar como realmente se alinha no terminal:
$ pr -m -t file1 file2
a 1
abc 123
abcdefg 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890
Por alguma razão, unix
a troca de pilha não torna os blocos de código sólidos. De qualquer forma, não preciso que os números das linhas correspondam (mas, para responder à pergunta geral, você também pode responder como fazer isso), mas a propriedade principal que desejo é fazer com que as linhas sejam agrupadas em vez de truncadas. Não tenho escolha a não ser pré-processar cada arquivo em uma determinada largura e canalizá-lo? Se sim, como eu faria isso?
Atualização: suponho que, se houvesse algum command
que restringisse a largura de um arquivo e forçasse a quebra em novas linhas, eu faria:pr -m -t <(command file1) <(command file2)
EDITAR:
Preocupa-se com o alinhamento?
Se você pegar o script perl encontrado aqui , escrito por Peter Stuifzand , e nomeá-lo
columnFix.perl
echmod u+x columnFix.perl
(para ter certeza de que pode executá-lo, você pode fazer isso:Resposta original:
As versões de
pr
I têm linhas truncadas por padrão para 72 caracteres, com 2 colunas que cortam a primeira coluna para 35(35 char/column * 2 columns) + 1 char/separator = 71 characters
(então a segunda coluna tem possivelmente 36 caracteres).Portanto, o mesmo comando que você executou, mas com
-J
deve fazer o que parece estar procurando (o mais próximo possível do comando original) se estiver bem sem alinhamento de coluna (este é um resultado semelhante ao comando colar sugerido nos comentários)pr -J -m -t file1 file2
Na página de manual: