我有一个几 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 将输出分成几行。