열에 특정 숫자가 포함된 파일이 있는데 다른 파일에서 해당 숫자가 포함된 열 3의 행을 추출하려고 합니다.
예를 들어 다음과 같습니다 extract.file
.
123
689
456
input.file
~와 함께
1 AB 123 home 123
1 AC 568 cat 568
1 BC 689 dog 123
1 BB 456 car 456
다음만 포함된 결과 파일을 원합니다.
1 AB 123 home
1 BC 689 dog
1 BB 456 car
나는 사용했다
grep -wF -f extract.file input.file > output.file
그러나 여기에는 마지막 열도 포함됩니다.
1 BC 689 dog 123
그러면 어떻게 열 3에서만 검색하고 출력에서 마지막 열을 제외할 수 있습니까?
답변1
일방 통행:
awk 'NR==FNR{a[$1];next}($3 in a){$NF="";print;}' extract.file input.file
마지막 열을 제거하지 않고 전체 행을 얻으려면 다음을 수행하십시오.
awk 'NR==FNR{a[$1];next}($3 in a)' extract.file input.file
답변2
패턴 파일에 정규식을 사용합니다.
[0-9]\+ [A-Z]\+ 123
[0-9]\+ [A-Z]\+ 689
[0-9]\+ [A-Z]\+ 456
grep -f extract.file input.file
1 AB 123 home 123
1 BC 689 dog 123
1 BB 456 car 456
답변3
당신이 사용할 수있는 cut
:
grep -wF -f extract.file input.file | cut -d" " -f1,2,3,4 > output.file