Com a pasta POSIX :
:|paste -d ' ||| ' fileA - - - - fileB
paste
concatenará as linhas correspondentes de todos os arquivos de entrada. Aqui temos seis arquivos, fileA
, quatro arquivos fictícios do padrão em -
e fileB
.
A lista de delimitadores inclui um espaço, três tubos e um espaço nessa ordem será usado por paste
circularmente.
Para a primeira linha de seis arquivos, fileA
será concatenado com o primeiro arquivo fictício (o que não é nada, graças ao no-op: operator), produza line1-fileA<space>
.
O primeiro arquivo dummy será concatenado com o segundo por um pipe, produza line1-fileA |
, então o segundo arquivo fictício com o terceiro arquivo fictício, produza line1-fileA ||
, o terceiro arquivo fictício com o arquivo fictício, produza line1-fileA |||
.
E o quarto arquivo fictício com fileB
produz line1-fileA ||| line1-fileB
.
Esse passo será repetido para todas as linhas, dando-lhe o resultado esperado.
O uso de :|
é para menos digitação e principalmente para uso no shell interativo. Em um script, você deve usar:
</dev/null paste -d ' ||| ' fileA - - - - fileB
para evitar que uma subshell seja gerada.