텍스트 파일의 값을 확인하세요.

텍스트 파일의 값을 확인하세요.

파일의 두 번째 열(파일 2)에 있는 값이 다른 파일(파일 1)의 두 번째 열에 있는지 확인하는 쉬운 방법이 있습니까? 예를 들어 관련 줄 옆에 별표를 인쇄하는 방법이 있나요? 가능하면 awk를 사용하세요.

파일 1

A   1,2,3,4 
B   15,16,17

파일 2

A   3
B   18

예상 출력: 파일 3

A   1,2,3,4     *
B   15,16,17         

편집하다 파일 2가 다음과 같다면 어떨까요?

A    3,8
B    18,19

그러나 예상되는 출력은 동일하게 유지됩니까?

답변1

이 시도:

$ awk '
   FNR == NR {
       a[$1] = $2;next
   }
   {
       split(a[$1],b,",");
       for (i in b) {
           if ($2 == b[i]) {
               printf("%s %s\t*\n",$1,a[$1]);
               next;
           }
       }
       print $1,a[$1];
   }
' file1 file2 
A 1,2,3,4   *
B 15,16,17

고쳐 쓰다

새로운 입력으로 다음을 시도해 보세요.

$ awk '
    FNR == NR {
        a[$1] = $2;
        next;
    }
    {
        split($2,b,",");
        split(a[$1],c,",");
        for (i in b) {
            if (b[i] in c) {
                printf("%s %s\t*\n",$1,a[$1]);next;
            }}
                print $1, a[$1];
     }
' file1 file2

관련 정보