Tengo un archivo de texto que tiene un par de GB. Estoy intentando mezclar este archivo de texto en una tubería.
Por ejemplo, estas son algunas líneas de muestra de lo que estoy usando, pero no es eficiente y, de hecho, la tubería no parece iniciarse hasta que se lee todo el archivo. Quizás me equivoque en eso.
shuf HUGETEXTFILE.txt|some command
cat HUGETEXTFILE.txt|sort -R |some command
También intenté usar
split -n 1/numberofchunks HUGETEXTFILE.txt|sort -R|some command
Pero la tubería termina cuando termina el primer trozo.
Estoy tratando de encontrar una manera eficiente de canalizar la mezcla de archivos de texto en una tubería porque no quiero escribir cientos de archivos cada vez que necesito una nueva forma de mezcla o distribución aleatoria.
gracias
Respuesta1
Puedes probar este enfoque:
cat bigfile.txt|
while IFS= read -r line; do
echo '%s\n' "$line" |shuf |sort -n| grep "sample";
done
Aquí se utiliza IFS para dividir la salida en líneas.