Inserindo o nome do arquivo na primeira linha dos arquivos txt mesclados

0

Eu quero combinar vários arquivos txt usando o comando paste e quero os nomes de cada arquivo txt como parte do newfile. Os arquivos Txt (ou seja, 01.txt) são assim:

        X936    X937    X938
Y516    83      79      70
Y517    78      70      75
Y518    82      81      75
Y519    76      80      79
Y520    78      78      77

Então, primeiro eu tento adicionar o nome do arquivo na primeira linha de cada texto, como este

01.txt
        X936    X937    X938
Y516    83      79      70
Y517    78      70      75
Y518    82      81      75
Y519    76      80      79
Y520    78      78      77

mas não sei como fazer isso. Mais tarde eu quero combinar todos os arquivos em uma tabela usando

paste *.txt > newfile

como este

01.txt                          02.txt                             ....
        X936    X937    X938              X936      X937    X938   ....
Y516    83      79      70      Y516      83        79      70     ....
Y517    78      70      75      Y517      78        70      75     ....
Y518    82      81      75      Y518      82        81      75     ....
Y519    76      80      79      Y519      76        80      79     ....
Y520    78      78      77      Y520      78        78      77     ....
    
por dschones 27.03.2018 / 19:53

2 respostas

1

A maneira mais simples provavelmente seria ter a operação em duas etapas, algo assim (ajuste o número de \t em seu arquivo):

echo 0* | sed 's/ /\t\t\t\t/g' > header.txt | paste 0* > data.txt | cat header.txt data.txt > final.txt

Nota: estou assumindo que todos os arquivos começam com 0 ... você pode querer mudar isso

    
por hidetzugu 28.03.2018 / 13:16
0

Se "vários" não for demais, você poderia

for i in *.txt ; do
    echo "$i" >>newfile
    cat "$i" >>newfile
done
    
por waltinator 27.03.2018 / 21:02