
我有一個幾個 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 用於將輸出分成幾行。