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

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

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를 포함시켰습니다.

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

관련 정보