파일의 두 번째 열(파일 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