Ich versuche, eine neue Datei basierend auf einer Übereinstimmung zu output. In der input
Datei gibt es eine Liste von IDs, die $5
vor der |
Datei entsprechen. Wenn die beiden IDs übereinstimmen, ist die gesamte Zeile aus der Datei Teil der neuen Datei. Wenn keine Übereinstimmung gefunden wird, überspringt es sie und geht weiter. Die folgende Datei awk
wird ausgeführt, aber die resultierende Datei new
ist leer. Vielen Dank :).Update-Datei basierend auf Übereinstimmung von einer anderen Datei mit Hilfe von awk
Eingangs
DACH1
POLE2
GNG7
Datei
chr13 60737711 60737910 chr13:60737711-60737910 DIAPH3-673|gc=69.3
chr13 72337884 72338003 chr13:72337884-72338003 DACH1-674|gc=30.3
chr19 2591538 2591657 chr19:2591538-2591657 GNG7-183|gc=48.7
gewünschte Ausgangs
chr13 72337884 72338003 chr13:72337884-72338003 DACH1-674|gc=30.3
chr19 2591538 2591657 chr19:2591538-2591657 GNG7-183|gc=48.7
awk
awk 'BEGIN {FS=OFS="|"} NR==FNR{a[$1]=$5;next} $5 in a{$5=a[$1];print $0}' input file > new
Was denkst du, wenn du 'FS =" | "" machst? Zählen Sie nun die Anzahl der '|' getrennten Felder in Ihrer Eingabedatei. Was ist der Wert des 5. Feldes ($ 5) in jeder Zeile? Jetzt siehst du das Problem? –
Danke @Ed Morton Ich sehe das Problem mit meinem 'awk' und dein' awk' ist sehr hilfreich :). – Chris