![다른 파일의 요소를 기반으로 대용량 파일 분할](https://linux55.com/image/141165/%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%9A%94%EC%86%8C%EB%A5%BC%20%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C%20%EB%8C%80%EC%9A%A9%EB%9F%89%20%ED%8C%8C%EC%9D%BC%20%EB%B6%84%ED%95%A0.png)
다른 파일의 요소를 기반으로 대용량 파일을 분할하고 싶습니다. 첫 번째 파일의 샘플 데이터는 다음과 같습니다.
Col1,Col2,Col3
A,10,50
B,10,05
C,20,30
B,20,03
A,30,100
C,30,111
D,40,120
두 번째 파일은 다음과 같습니다.
A
B
C
첫 번째 열의 값이 "A"인 file1의 하위 집합을 A.txt에 저장하고 "B"를 B.txt에 저장하려고 합니다.
내가 사용하기 전에
awk '$1=="A"' file1.txt > A.txt
하지만 이제 두 번째 파일에서 100개가 넘는 서로 다른 이름을 처리해야 하며 작업을 완료하는 더 나은 방법을 찾아야 합니다. 감사해요! ! !
답변1
귀하 사건의 기본 요소는 이 사이트에서 여러 번 논의되었습니다.
그것들을 하나로 합치고,
awk -F, 'NR==FNR {a[$1]++; next} $1 in a {print > $1 ".txt"}' file2.txt file1.txt