Fügen Sie eine Q + -Spaltennummer als Kopfzeile für x Spaltenanzahl hinzu

332
user770211

Ich habe eine Reihe von durch Tabulatoren getrennten Dateien, für die der Skriptbenutzer anhand eines bestimmten Schwellenwerts eine auswählen wird. Alle Dateien haben unterschiedliche Spalten (1 bis n, abhängig von einem zuvor ausgewählten Schwellenwert). Die Spalten der Dateien haben keine Kopfzeilen. Für das nächste Programm werden jedoch für die ausgewählte Datei Kopfzeilen benötigt. Die Spalten müssen für diesen nächsten Schritt mit Q1 bis Qn bezeichnet werden. Da der Benutzer möglicherweise eine Datei mit 1, 10 oder n Spalten verwendet, ändert sich die Anzahl der Spalten, deren Namen Q1 bis Qn sind, jedes Mal. Ich habe Probleme, diese Arbeit richtig zu machen. Irgendwelche Vorschläge?

Was ich erreichen möchte:

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

0
https://i.stack.imgur.com/dmJMt.png user770211 vor 7 Jahren 0
Ich kann das Q in die erste Zeile einfügen: awk 'NR == 1 }' file> outputFile, jedoch wie mache ich die Spaltennummer zuerst als Überschrift? user770211 vor 7 Jahren 0

1 Antwort auf die Frage

0
user770211

Also, das ist was ich gefunden habe. Ein bisschen chaotisch und ich denke, es gibt wahrscheinlich einen schnelleren Weg, aber das hat funktioniert.

for i in $(seq 1 $maxPops); do echo $i; done > output1.txt #make a temp file with numbers 1 to max populations maxPops awk '}' 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