'True'는 grep 또는 awk와 일치합니다.

'True'는 grep 또는 awk와 일치합니다.

제가 작업 중인 프로젝트의 경우 특정 패턴과 구체적으로 일치해야 하는 식별자 목록이 필요합니다.

기본적으로 파일에는 관련 줄을 선택하기 위해 다른 파일에서 사용하고 싶은 패턴 목록이 있습니다.

다행히도 grep -f patternfile.txt otherfile.txt > releventlinesfile.txt그것은 작동하지 않습니다. 어느 것도 아니다 grep -w.

otherfile.txt의 파일 구조는 다음과 같습니다.

test_id gene_id gene    locus   sample_1        sample_2        status  value_1 value_2 log2(fold_change)       test_stat       p_value q_value significant   
TSS10019        XLOC_007800     ABC73140       1:27498963-27503819     BA  BB  NOTEST  0.666344        0.628569        -0.0841946      0       1       1       no
TSS1002 XLOC_000726     ABC14350       1:4907952-4913152       BA  BB  NOTEST  0       0       0       0       1       1       no
TSS10020        XLOC_007801     ABC73150       1:27504093-27506154     BA  BB  OK      11.8553 13.3817 0.174729        1.26968 0.02755 0.107242        no
TSS10021        XLOC_007802     ABC73165       1:27508724-27508949     BA  BB  NOTEST  0       0       0       0       1       1       no
TSS10022        XLOC_007803     ABC73170       1:27511324-27514797     BA  BB  OK      0.893787        0.557083        -0.682037       -0.590335       0.33135 0.575735      -no

Patternfile.txt의 파일 구조는 다음과 같습니다.

TSS10020
TSS10056
TSS10378
TSS10708
TSS11795

내가 원하는 출력:

TSS10020        XLOC_007801     ABC73150       1:27504093-27506154     BA  BB  OK      11.8553 13.3817 0.174729        1.26968 0.02755 0.107242        no

답변1

결과에서 부분적으로 일치하는 대신 전체 단어만 일치시키려면 -w-f옵션 과 함께 사용해야 합니다 .grep

grep -wf patternfile.txt otherfile.txt > releventlinesfile.txt 

답변2

파일 개수가 좀 헷갈리네요.

  • lijst_expressie.txt
  • sig_splicing.txt
  • 접합.diff
  • tss_group_exp.diff
  • tss_lijst.txt

원인:

splicing.diff의 lss_lijst.txt에서 TSS를 찾고 싶습니다.

짧은 목록을 사용하세요:tss_lijst.txt

TSS1
TSS10

그리고 splicing.diff당신이 제공한 대로 다음을 사용하여 file1에 나열된 TSS를 추출할 수 있습니다.

awk 'NF==1{ tss[$1]=1 ; next ; } $1 in tss { print ;}' tss_lijst.txt splicing.diff
TSS1    XLOC_000001     AT1G01010       1:3630-5899     BAY_ST  BAY_LP  OK      0       0       0.219269        0       0.1726  0.474413        no
TSS10   XLOC_000007     AT1G01180       1:75404-76921   BAY_ST  BAY_LP  OK      0       0       0.0277474       0       0.77985 0.900632        no

긍정을 얻다

awk '$14 == "yes" ' splicing.diff

관련 정보