목록을 사용하여 큰 탭으로 구분된 파일에서 줄 추출

목록을 사용하여 큰 탭으로 구분된 파일에서 줄 추출

15개 열(FILE1)과 테이블에 표시되어야 하는 이름 목록(FILE2)이 포함된 큰 탭 파일이 있습니다. 문제는 이름이 FILE1의 4~10열에 나타날 수 있으며 대소문자가 일치하지 않을 수 있다는 것입니다.

나는 적중된 줄을 검색한 다음 전체 줄을 인쇄하는 명령을 원합니다. 바람직하게는 대소문자를 구분하지 않으며 FILE2의 이름이 더 큰 단어의 일부인 행을 인쇄하지 않습니다.

나는 다음을 시도했습니다 :

grep -Fwf FILE2 FILE1 > out 
xargs -I {} grep "^{}" FILE1 < FILE2 > out 

첫 번째는 FILE1을 외부로 복사합니다. 두 번째는 빈 출력 파일을 제공합니다.

awk나는 또한 빈 출력 파일을 제공하거나 위의 FILE1 복사본을 제공하는 몇 가지 명령을 시도했습니다 . 나는 현재 Linux 기술을 향상시키려고 노력하고 있으므로 가능하다면 방법을 설명해 주시면 매우 감사하겠습니다.

파일1

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

파일2

sacX
arcB
metB
sprT
adrB_2
fadD
trpC
ansP2
group_1428
plsX
repA

답변1

위에 댓글로 답해주세요 @Philippos 및 @George Vasiliou 답변을 참조하세요.

간단히 대답은 grep -Fwf FILE2 FILE1 > out

FILE1을 복사하는 명령을 실행하는 문제가 있었습니다. 이는 FILE2의 뒤에 오는 빈 줄 때문에 발생했습니다. 이것을 제거하면 명령이 완벽하게 작동했습니다.

파일의 일부 텍스트가 대소문자에 따라 일치하지 않을 수 있으므로 위 명령에 -i를 포함했습니다.

도움을 주신 모든 분들께 감사드립니다.

관련 정보