Adicione o número da coluna Q + como cabeçalho para x número de colunas

0

Eu tenho vários arquivos delimitados por tabulações, para os quais o usuário do script estará escolhendo um baseado em um limite específico. Todos os arquivos têm diferentes quantidades de colunas (1 a n dependendo de um limite previamente escolhido). As colunas dos arquivos não possuem cabeçalhos, no entanto, para o próximo programa, o arquivo escolhido exigirá cabeçalhos. As colunas precisam ser nomeadas de Q1 a Qn para a próxima etapa. Como o usuário pode estar usando um arquivo com 1 ou 10 ou n colunas, o número de colunas para os nomes Q1 a Qn será alterado a cada vez. Estou tendo problemas para fazer isso funcionar corretamente. Alguma sugestão?

O que eu quero realizar:

    
por user770211 11.09.2017 / 16:48

1 resposta

0

Então, é isso que eu criei. Um pouco confuso e acho que provavelmente há um caminho mais rápido, mas isso funcionou.

for i in $(seq 1 $maxPops); do echo $i; done > output1.txt #make a temp file with numbers 1 to max populations maxPops
awk '{for (i=1;i<=NF;i++) {print "Q"$i;}}' output1.txt > outpu2.txt #Add Q to the beginning of each row name
cut -f1 output2.txt | paste -s > output3.txt #transpose the row names
awk -v OFS="\t" '$1=$1' inputPopFile.txt > chosenPop.txt #change single spaces to tab delimited spaces
cat output3.txt chosenPop.txt > renamedColumns.txt #add formatted column names to desired file chosenPop.txt
rm $fastStructure/temp1.txt $fastStructure/numPops.txt #remove unwanted files
    
por 11.09.2017 / 19:48