바이너리 파일에 저장된 64 비트 숫자로 GNU Coreutils 정렬을 사용할 수 있습니까? 파일이 바이너리가 아닌 경우 sort -n
이 해결책이지만 바이너리 데이터와 함께 사용하는 옵션을 찾지 못했습니다.바이너리 형식의 숫자 데이터와 함께 GNU sort를 사용하는 방법은 무엇입니까?
파일 크기가 매우 큽니다 (~ 100GB). 가능한 경우 텍스트 (이진수가 아닌) 복사본을 만들고 싶지 않습니다. 데이터의
샘플 : $ xxd file 00292e0: 4036 1eb7 6888 d319 de6b 7402 9ca9 f116 @6..h....kt..... 00292f0: db68 7f05 199f 9d36 cf01 cb28 e49f 1116 .h.....6...(.... 0029300: 0c7c 8b55 2963 ef0c 277a f2b0 38d7 2b19 .|.U)c..'z..8.+. 0029310: c83b 2614 4327 d838 820c 1bb8 444f 1731 .;&.C'.8....DO.1 0029320: 1695 cab3 cd12 092a 0691 d7e4 5fcc b01d .......*...._... 0029330: b12b 7c1b a209 7c1c 568a 125c 541c d334 .+|...|.V..\T..4 0029340: 09a3 ecbc 8370 e205 9265 7759 a378 4e2f .....p...ewY.xN/
'xxd 파일'샘플을 붙여 넣을 수 있습니까? – choroba
'sort (1)'이 당신을 도울 수 있다고 생각지 않습니다. 게다가,'sort (1)'은 정렬을 완료 할 때까지 모든 데이터를 메모리에 저장하기 때문에 엄청난 양의 입력으로 인해 큰 피해를 입을 것입니다. Btw, 귀하의 파일이 순전히 64 비트 숫자로 구성되어 있습니까? 즉, 파일이 64 비트 숫자의 거대한 배열입니까? 더 나은 대체 방법을 제안하기위한 자세한 정보를 제공해주십시오. – nodakai
예, C++ ofstream :: write의 64 비트 숫자로만 구성됩니다. 그러나 그들은 "GNU 정렬 (모든 GNU 유틸리티에 대해 지정된대로)은 입력 행 길이에 제한이 없으며 행 내에서 허용되는 바이트에 대한 제한이 없다고 말합니다." – Dmitry