com bash
4
mapfile -t <list
paste "${MAPFILE[@]}" | column -s $'\t' -t
para a versão paste {list}/PQR/A/sum
da pergunta
mapfile -t <list
paste "${MAPFILE[@]/%//PQR/A/sum}" | column -s $'\t' -t
Para colar muitos arquivos, cujos nomes são números incrementais:
paste {1..8}| column -s $'\t' -t
Além disso, você tem uma lista de arquivos que contém todos os arquivos que você deseja.
Até agora, minha abordagem é:
mkdir paste
j=0; while read i; do let j+=1; cp $i/ paste/$j; done<list;
cd paste; paste {1..8}| column -s $'\t' -t
Eu não tenho nenhum problema com essa abordagem, só quero perguntar se há alguma mais curta.
Na verdade, meus arquivos têm o mesmo nome, apenas em locais diferentes, por exemplo, 1MUI/PQR/A/sum, 2QHK/PQR/A/sum, 2RKF/PQR/A/sum
. O comando paste
deve ser paste {list}/PQR/A/sum
. O arquivo da lista é:
1MUI
2QHK
2RKF
...
Se todos os seus arquivos estiverem no diretório único, use:
paste * | column -s $'\t' -t
Se você tiver um arquivo de lista contendo todos os arquivos e cada nome de arquivo em uma linha, não tiver caracteres especiais como espaço, tente:
paste $(printf "%s " $(cat list)) | column -s $'\t' -t
Atualizado
Com suas informações atualizadas, você pode tentar:
paste */PQR/A/sum | column -s $'\t' -t
Se o seu diretório pai contiver muitos arquivos e diretório que você não precisa, você deve listar explicitamente todos os seus diretórios:
paste {1MUI,2QHK,2RKF,...}/PQR/A/sum | column -s $'\t' -t