Sie können diesen Ansatz ausprobieren:
cat bigfile.txt| while IFS= read -r line; do echo '%s\n' "$line" |shuf |sort -n| grep "sample"; done
IFS wird verwendet, um die Ausgabe hier in Zeilen aufzuteilen.
Ich habe eine Textdatei, die paar GBs ist. Ich versuche, diese Textdatei in einer Pipe zu mischen.
Dies sind zum Beispiel einige Beispielzeilen von dem, was ich verwende, aber es ist nicht effizient und tatsächlich scheint die Pipe nicht zu starten, bis die gesamte Datei gelesen ist. Vielleicht habe ich mich geirrt.
shuf HUGETEXTFILE.txt|some command cat HUGETEXTFILE.txt|sort -R |some command
Ich habe auch versucht zu benutzen
split -n 1/numberofchunks HUGETEXTFILE.txt|sort -R|some command
Das Pfeifen endet jedoch, wenn der erste Teil fertig ist.
Ich versuche, einen effizienten Weg zum Pipe-Mischen von Textdateien in einer Pipe zu finden, weil ich nicht jedes Mal Hunderte von Dateien schreiben möchte, wenn ich einen neuen Weg zum Mischen oder eine zufällige Verteilung benötige.
Vielen Dank
Sie können diesen Ansatz ausprobieren:
cat bigfile.txt| while IFS= read -r line; do echo '%s\n' "$line" |shuf |sort -n| grep "sample"; done
IFS wird verwendet, um die Ausgabe hier in Zeilen aufzuteilen.