Ich habe zwei Dateien:awk Last eine Datei in ein Array, Test gegen eine andere Datei
seqs.fa:
>seq000007;size=72768;
ACTGTGAG
>seq000010;size=53132;
GTAAGATC
GAATTCTT
>seq00045;size=40321;
ACCCATTT
...
numbers.txt
72768
53132
meine gewünschte Ausgabe der sein würde, Zeilen aus der ersten Datei, die mit einer Nummer aus der zweiten Datei übereinstimmen:
>seq000007;size=72768;
>seq000010;size=53132;
ich versuchte awk
zu verwenden, aber es liefert nur Linien die erste Zahl übereinstimmt, gefunden
awk -F"\n" -v RS=">" 'NR==FNR{for(i=1;i<=NF;i++) A[$i]; next} END {for (header in A) {if (match(header,$1)) {print header}}}' seqs.fa numbers.txt
seq000007;size=72768;
seq072768;size=1;
Warum awk wird nur durch die „Header“ Array für die erste Zeile in numbers.txt Looping? Und wenn dies ein XY problem ist, gibt es einen besseren Weg, dieses Ziel zu erreichen?
Note den Tippfehlern in Ihren Zahlen Datei Festsetzung, dass dies jedes Auftreten von Teilzeichenfolgen in der Datei übereinstimmen. – karakfa