添加 Q + 列号作为 x 列的标题

添加 Q + 列号作为 x 列的标题

我有许多制表符分隔的文件,脚本用户将根据特定阈值选择一个。所有文件的列数都不同(1 到 n,取决于先前选择的阈值)。文件的列没有标题,但是对于下一个程序,所选文件将需要标题。下一步需要将列命名为 Q1 到 Qn。由于用户可能使用具有 1 或 10 或 n 列的文件,因此每次将列命名为 Q1 到 Qn 的列数都会发生变化。我无法让这个程序正常工作。有什么建议吗?

我想要实现的目标:

https://i.stack.imgur.com/dmJMt.png

答案1

所以,这就是我想到的办法。有点混乱,我想可能有更快的方法,但这个办法有效。

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

相关内容