Ich habe 20 tabulatorgetrennte Dateien mit der gleichen Anzahl von Zeilen. Ich möchte jede vierte Spalte jeder Datei auswählen, die in eine neue Datei eingefügt wird . Am Ende hat die neue Datei 20 Spalten, wobei jede Spalte aus 20 verschiedenen Dateien stammt.
Wie kann ich das mit Unix / Linux-Befehlen machen?
Eingabe, 20 desselben Formats, ich möchte die 4. Spalte, die hier als A1 für Datei 1 bezeichnet wird:
chr1 1734966 1735009 A1 0 0 0 0 0 1 0
chr1 2074087 2083457 A1 0 1 0 0 0 0 0
chr1 2788495 2788535 A1 0 0 0 0 0 0 0
chr1 2821745 2822495 A1 0 0 0 0 0 1 0
chr1 2821939 2822679 A1 1 0 0 0 0 0 0
...
Ausgabedatei mit 20 Spalten, jede Spalte stammt aus einer der 4. Spalten der 20 Dateien:
A1 A2 A3 ... A20
A1 A2 A3 ... A20
A1 A2 A3 ... A20
A1 A2 A3 ... A20
A1 A2 A3 ... A20
...
paste <(cut -f 4 1.txt) <(cut -f 4 2.txt) .... <(cut -f 4 20.txt)
. Das funktioniert, weil cut
standardmäßig Kürzungen in durch TAB getrennten Feldern vorgenommen werden. Wenn die Frage erneut geöffnet wird, werde ich dies auch als Antwort veröffentlichen.