90GB 파일을 조건부로 여러 파일로 분할해야 합니다(해당 파일은 다중 테이블 파일이고 단일 테이블로 분할됩니다).
나는 ksh 및 awk에서 테이블 규칙을 반복하고 awk를 사용하여 출력 파일에 인쇄할지 여부를 선택하는 솔루션을 만들었습니다. 문제는 29개의 규칙에 대해 소스 파일(90GB)을 29번 읽어야 한다는 것입니다.
소스 파일을 한 번에 읽고 조건부로 하나 또는 다른 출력으로 리디렉션하여 여러 파일에 쓸 수 있습니까?
답변1
당신은 그것을 사용할 수 있습니다리디렉션(POSIX에 의해 지정되었으므로 다른 awks와도 작동해야 합니다). 간단한 예:
$ awk '$1 % 2 {print > "odd"; next} {print > "even"}' <(seq 1 10)
$ tail -n +1 odd even
==> odd <==
1
3
5
7
9
==> even <==
2
4
6
8
10
따라서 29개의 파일 이름으로 구성된 배열을 만들거나 변수( 는 카운터임)를 사용하여 구성할 수 print > "filenum" n
있습니다 n
.