탭으로 구분된 두 개의 파일이 있습니다.
파일 1
123 456
135 567
234 478
파일 2
123 notimportant notimportant2
456 notimportant notimportant2
987 notimportant notimportant2
135 notimportant notimportant2
234 notimportant notimportant2
478 notimportant notimportant2
단일 행의 두 항목이 모두 file2의 첫 번째 열에 있는 경우 file1에서 행을 추출해야 합니다. 따라서 출력 파일은 다음과 같아야 합니다.
산출
123 456
234 478
이전에 file1의 첫 번째 열만 file2의 첫 번째 열과 일치하는 경우 행을 추출하기 위해 이 awk 명령을 사용했습니다.
awk 'FNR==NR{a[$1];next}($1 in a){print}' file2 file1
그런데 어떻게 연장해야 할지 모르겠어요.
답변1
awk 'FNR==NR{a[$1]++;next;}($1 in a)&&($2 in a){print}' file2 file1
perl -lane '
@ARGV and $h{$F[0]}++,next;
print if @F == grep { $h{$_} } @F;
' file2 file1