Cole os arquivos de texto e adicione o nome do diretório pai como cabeçalho de cada coluna

1

Em uma pasta pai, tenho várias pastas dentro dela. Dentro de cada pasta eu tenho o arquivo de texto "text.txt". Os arquivos de texto são semelhantes em todas as pastas, cada arquivo de texto contém 100 linhas e uma coluna de números. exemplo

cat /folder1/text1.txt

1654
1684
535
35131
.
.

Eu quero mesclar todos esses arquivos de texto como colunas em um arquivo usando o comando paste . Na pasta pai, eu corri o comando

paste ./*/text*.text > all_text.txt  # the content for all_text.txt is as follow:

cat all_text.txt
1654        354531 ....
1684        224
535         2424 
35131       24
.
.
.

Como posso adicionar os nomes das pastas como um cabeçalho para cada coluna colada para obter a seguinte saída

cat all_text.txt
folder#1   folder #2   .....
1654        354531
1684        224
535         2424 
35131       24
 .
 .
 .   
    
por don_crissti 11.11.2016 / 15:34

1 resposta

0

Você pode usar set e expansão de parâmetro em cada elemento da matriz para imprimir apenas o nome do diretório:

set -- */text.txt
{ printf '      %s' "${@%/*}" | cut -c2-;  paste -- "$@"; }
# this blank ^ is a literal tab
    
por 11.11.2016 / 15:51