몇 GB 크기의 텍스트 파일이 있습니다. 이 텍스트 파일을 파이프로 섞으려고 합니다.
예를 들어 이것은 내가 사용하고 있는 몇 가지 샘플 라인이지만 효율적이지 않으며 실제로 전체 파일을 읽을 때까지 파이프가 시작되지 않는 것 같습니다. 어쩌면 내가 틀렸을 수도 있습니다.
shuf HUGETEXTFILE.txt|some command
cat HUGETEXTFILE.txt|sort -R |some command
나도 써보려고 했는데
split -n 1/numberofchunks HUGETEXTFILE.txt|sort -R|some command
그러나 첫 번째 청크가 완료되면 배관이 종료됩니다.
새로운 방식의 셔플링이나 무작위 배포가 필요할 때마다 수백 개의 파일을 작성하고 싶지 않기 때문에 텍스트 파일을 파이프로 셔플링하는 효율적인 방법을 찾으려고 합니다.
감사해요
답변1
다음 접근 방식을 시도해 볼 수 있습니다.
cat bigfile.txt|
while IFS= read -r line; do
echo '%s\n' "$line" |shuf |sort -n| grep "sample";
done
IFS는 여기서 출력을 라인으로 분할하는 데 사용됩니다.