줄의 첫 번째 숫자를 기준으로 파일 분할

줄의 첫 번째 숫자를 기준으로 파일 분할

약 10GB의 파일이 있어서 제가 사랑하는 Excel에서 처리할 수 없습니다. 이 파일을 첫 번째 숫자를 기준으로 여러 부분으로 잘라야 합니다. 예를 들어 파일은 다음과 같습니다.

0.213;89;230;0.1234    
0.213;323;650;0.3500    
0.213;8234;10;0.7863
...
0.653;89;230;0.1234    
0.653;323;650;0.3500    
0.653;8234;10;0.7863
..
1.213;89;230;0.1234
1.213;323;650;0.3500
1.213;8234;10;0.7863

점은 약 200줄 이후의 0.213을 나타냅니다. 내가 정말로 달성하고 싶은 것은 awk, csplit 또는 이와 유사한 것을 사용하는 것입니다. 이 큰 파일을 순전히 첫 번째 숫자를 기준으로 여러 개의 작은 파일로 분할합니다. 그래서..... 0.213과 0.653은 하나의 파일에 들어가야 하고, 1.213과 1.xxx로 시작하는 모든 것은 다음 파일에 들어가야 합니다.

답변1

이를 통해 awk다음을 수행할 수 있습니다.

awk '{file = "output" substr($0, 1, 1) ".txt"; print > file}' < input.txt

for 행은 for or , ... 행과 같이 들어갑니다 10.123.output1.txt1.12311.123123123.123

또는 다음을 수행할 수 있습니다.

awk -F'[.;]' '{file = "output" $1 ".txt"; print > file}' < input.txt

.첫 번째 줄이나 이전 줄( 로 시작하거나 를 입력하는 ;줄 ) 의 내용을 기반으로 파일 이름을 지정합니다 .10.123;...10;...output10.txt

관련 정보