Ich habe eine tabulatorgetrennte Datei mit Spalte 1 als ID und Spalte 2 als Information. Ich habe eine zweite Datei mit einer Liste von IDs, die aus der ersten Datei entfernt werden müssen. Wenn ich grep verwende, bekomme ich entweder eine Kopie der ersten Datei ohne Änderungen oder ich bekomme eine leere Datei mit -v mit -F -f "file2.txt" Flags/Argumenten. Meine Frage ist: Wie verwende ich file2.txt, um die IDs davon mit file1 zu vergleichen, um diese Zeilen aus file1 zu entfernen, um sie in file3 auszugeben.Zeile aus tabulatorgetrennter Datei entfernen mit grep -v
awk 'BEGIN{RS=">"}NR>1{sub("\n","\t"); gsub("\n",""); print RS$0}' $1 > fasta.tab
grep -F -f $2 fasta.tab -v >rmOutput.tab
tr '\t' \n' <rmOutput.tab >rmOutput.fas
echo Runtime Complete
Zeile 1: Erstellen Sie Tabula delim Datei von Eingang 1 Zeile 2: Überprüfen Eingang 2 für die Spiele und entfernen Sie diese aus dem Reiter-delim Datei Zeile 3: neu Format des Eingangs 1 (Aus Gründen der Klarheit)
EDIT: Probe I/O
Eingang 1 (tabula~~POS=TRUNC delim - nach Zeile 1):
ID1 Info1
ID2 Info2
ID3 Info3
ID4 Info4
ID5 Info5
Eingang 2 (IDs gelöscht) werden:
ID2
ID4
ID5
gewünschte Ausgabe (ab Zeile 2)
ID1 Info1
ID3 Info3
Was ist der Sinn des awk + grep + tr + echo Shell-Skripts oben in der Frage? Auch Sie erwähnen "nach Zeile 2" und ähnlich, aber es ist überhaupt nicht klar, wie sich das auf Ihre Eingabe/Ausgabe bezieht - erklären Sie das. –
Die Eingabedatei ist eine Sequenzdatei.Das ist das Format > SeqID Sequenz usw. der Punkt ist, um die Datei in eine große Tab-Delim-Datei zu verwandeln. Es war ein Skript, das mir gegeben wurde, also bin ich mir nicht sicher, ob es das effizienteste/praktischste ist. –
Sagen Sie, dass die von Ihnen gepostete Beispieleingabe nicht wirklich im Eingabeformat ist, das Sie behandeln müssen? –