![숫자 ID가 있는 파일 A를 사용하여 ID와 일치하는 파일 B 행에서 열 23을 추출합니다.](https://linux55.com/image/10287/%EC%88%AB%EC%9E%90%20ID%EA%B0%80%20%EC%9E%88%EB%8A%94%20%ED%8C%8C%EC%9D%BC%20A%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20ID%EC%99%80%20%EC%9D%BC%EC%B9%98%ED%95%98%EB%8A%94%20%ED%8C%8C%EC%9D%BC%20B%20%ED%96%89%EC%97%90%EC%84%9C%20%EC%97%B4%2023%EC%9D%84%20%EC%B6%94%EC%B6%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
233개의 ID(4개 숫자, 첫 번째 열)가 있는 파일 A(fileA.txt)를 사용하여 파일 B에서 열 23을 추출하고 싶지만 파일 A ID(또한 첫 번째 열)와 일치하는 행에서만 추출합니다.
나는 시도했다:
awk 'NR==FNR{ a[$0]++; next }{ if ($23 in a) {$0=$23; print}}' FileA.txt fileB.txt > fileC.txt
답변1
내가 올바르게 이해했다면 fileA.txt의 열 1에 있는 ID를 fileB.txt의 열 23에 있는 ID와 일치시키고 일치하면 fileB.txt의 열 23을 인쇄하고 그렇지 않으면 인쇄합니다.편집하다귀하의 질문에 더 자세한 내용이 있습니다.
귀하의 파일이 다음과 같다고 가정합니다.
==> fileA.txt <==
1111 column2 column3 column4 ...
2222 c1 c2 c3 c4 ...
4444 co1 co2 co3 co4 ...
3333 col1 col2 col3 col4 ...
==> fileB.txt <==
c11 ... c22 3333 c24 c25
co11 ... co22 0000 co24 co25
col11 ... col22 4444 col24 col25
그런 다음 명령은 다음과 같습니다.
awk 'NR==FNR {seen[$1]++;next;} ($23 in seen){print $23}' fileA.txt fileB.txt
fileB.txt의 출력
c11
col11