내가 파일이 두 개가 있어.
file1.txt 내용은
XM_004235109.4
NM_001246923.2
XM_026028573.1
이런게 약 20개 정도 있고,
file2.txt 내용은
gene_id "LOC101256257"; transcript_id "XM_004234363.4"; db_xref "GeneID:101256257"; gbkey "CDS"; gene "LOC101256257"; product "kinesin-like protein KIN-10C isoform X2"; protein_id "XP_004234411.1";
gene_id "LOC101255664"; transcript_id "XM_004234362.4"; db_xref "GeneID:101255664"; gbkey "CDS"; gene "LOC101255664"; product "gibberellin 20-oxidase-like protein"; protein_id "XP_004234410.1";
gene_id "LOC101255367"; transcript_id "XM_004234361.4"; db_xref "GeneID:101255367"; gbkey "CDS"; gene "LOC101255367"; product "probable prolyl 4-hydroxylase 12"; protein_id "XP_004234409.1";
이런게 3만개 정도의 라인이 있어
내가 원하는건 file1.txt의 각각의 단어들을 file2.txt에서 찾아서 그 라인을 통째로 갖고 오는거야
(참고로 file1의 내용은 file2에서 transcript_id에 해당하는거야)
그래서 내가 쓴 명령어는
grep -Fwf file1.txt file2.txt > results.txt
이렇게거든?
근데 results.txt 파일을 열어보면 file1.txt의 제일 위의 id만 찾아놓고, 나머지는 안찾더라고.
그니까 결과파일에 단 한줄만 있어
물론 file1.txt의 두번째부터의 id들도 file2.txt에 모두 존재해
왜 한줄만 출력할까? ㅠㅠ
해당 댓글은 삭제되었습니다.
왜냐하면 전 프로그래머가 아니라 그냥 유전자 공부하는 사람이라서 컴퓨터언어를 하나도 모르거든요... ㅠㅠ 연구하는데 필요해서 윈도우는 버리고 그냥 구글링 해서 명령어 찾아다가 쓰는 정도에요 ㅠㅠ
command not found : keyword command not found : result command not found : puts
라고 나오네요... ㅠㅠ
일단 저도 최소한 파이썬은 공부하려고 생각하고 있는 중이에요! 조언 감사합니다. 근데 본문의 grep -Fwf 이거 전에는 잘 썼었거든요.. 근데 이번에는 왜 한줄만 나오는지 모르겠네요 ㅠㅠ 전에는 우분투 쓰다가 최근에 맥 쓰고 있는데 그 차이인가...
아하! 고마워용!! grep도 차이가 좀 있군요 ㅠㅠ 역시 하염없이 미루고만 있던 파이썬 공부를 해야겠어요... 감사합니다
파이썬 2시간이면 배움. 파이썬 안 쓰는 연구실을 못 봤는데 배워두셈
넹넹 안그래도 파이썬은 꼭 공부하려고 해요...! 시간 날때마다 조금씩이라도 공부해야겠어요
사진 저런거 넣의심
xargs -a file1.txt -I {} grep -F {} file2.txt > results.txt
위에께 정확한지는 테스트 해봐야 겠지만 조금 복잡한 조건문은 grep마스터가 아닌 이상에야 그냥 챗지피티한테 물어보는게 더 좋아
텍스트 인코딩이 이상했던건지 뭔지 모르겠는데 똑같은 내용의 파일을 텍스트에디터 거쳐서 새로 만들었더니 원래 쓰던 grep -Fwf 명령어가 되네요;;; xargs 좋은 조언도 감사합니다!