Ich habe eine große Tab-Datei mit 15 Spalten (DATEI1) und eine Liste (DATEI2) mit Namen, die in der Tabelle erscheinen sollen. Das Problem ist, dass der Name in den Spalten 4 bis 10 in DATEI1 erscheinen kann und die Groß-/Kleinschreibung nicht übereinstimmt.
Ich möchte einen Befehl, der die Zeile nach einem Treffer durchsucht und dann die ganze Zeile druckt. Vorzugsweise sollte dieser nicht zwischen Groß- und Kleinschreibung unterscheiden und keine Zeilen drucken, bei denen die Namen in DATEI2 Teil eines größeren Wortes sind.
Ich habe Folgendes versucht:
grep -Fwf FILE2 FILE1 > out
xargs -I {} grep "^{}" FILE1 < FILE2 > out
Das erste kopiert einfach FILE1 in out. Das zweite gibt eine leere Ausgabedatei aus.
Ich habe auch ein paar awk
Befehle ausprobiert, die entweder eine leere Datei ergeben oder wie oben DATEI1 kopieren. Ich versuche im Moment, meine Linux-Kenntnisse zu verbessern. Wenn Sie mir also Ihre Methode erklären könnten, wäre ich Ihnen sehr dankbar.
Datei1
tax_id GeneID Symbol LocusTag Synonyms dbXrefs chromosome map_location description type_of_gene Symbol_from_nomenclature_authority Full_name_from_nomenclature_authority Nomenclature_status Other_designations Modification_date
7 5692769 NEWENTRY - - - - - Record to support submission of GeneRIFs for a gene not in Gene (Azotirhizobium caulinodans. Use when strain, subtype, isolate, etc. is unspecified, or when different from all specified ones in Gene.). other - - - - 20160818
9 1246500 repA1 pLeuDn_01 - - - - putative replication-associated protein protein-coding - - - - 20160813
9 1246501 repA2 pLeuDn_03 - - - - putative replication-associated protein protein-coding - - - - 20160716
9 1246502 leuA pLeuDn_04 - - - - 2-isopropylmalate synthase protein-coding - - - - 20160903
9 1246503 leuB pLeuDn_05 - - - - 3-isopropylmalate dehydrogenase protein-coding - - - - 20150520
9 1246504 leuC pLeuDn_06 - - - - isopropylmalate isomerase large subunit protein-coding - - - - 20160806
9 1246505 leuD pLeuDn_07 - - - - isopropylmalate isomerase small subunit protein-coding - - - - 20160730
9 1246509 ibp pBPS1_01 - - - - Ibp protein protein-coding - - - - 20150801
9 1246510 repA1 pBPS1_02 - - - - repA1 protein protein-coding - - - - 20160813
Datei2
sacX
arcB
metB
sprT
adrB_2
fadD
trpC
ansP2
group_1428
plsX
repA
Antwort1
Antworten Sie in den Kommentaren oben siehe Antworten von @Philippos und @George Vasiliou
Kurz gesagt lautet die Antwort grep -Fwf FILE2 FILE1 > out
Ich hatte ein Problem, bei dem beim Ausführen des Befehls DATEI1 kopiert wurde. Dies geschah aufgrund von nachstehenden Leerzeilen in DATEI2. Als ich diese entfernte, funktionierte der Befehl einwandfrei.
Da bei einigen Texten in den Dateien die Groß- und Kleinschreibung möglicherweise nicht übereinstimmt, habe ich im obigen Befehl -i eingefügt.
Danke an alle, die geholfen haben.