Ich habe eine Textdatei, die mehrere GB groß ist. Ich versuche, diese Textdatei in einer Pipe zu verschieben.
Dies sind beispielsweise einige Beispielzeilen dessen, was ich verwende, aber es ist nicht effizient und tatsächlich scheint die Pipe erst zu starten, wenn die gesamte Datei gelesen ist. Vielleicht irre ich mich da.
shuf HUGETEXTFILE.txt|some command
cat HUGETEXTFILE.txt|sort -R |some command
Ich habe auch versucht,
split -n 1/numberofchunks HUGETEXTFILE.txt|sort -R|some command
Aber die Weiterleitung endet, wenn der erste Block fertig ist.
Ich versuche, eine effiziente Möglichkeit zum Umordnen von Textdateien in einer Pipe zu finden, da ich nicht jedes Mal Hunderte von Dateien schreiben möchte, wenn ich eine neue Möglichkeit zum Umordnen oder zur zufälligen Verteilung benötige.
Danke
Antwort1
Sie können diesen Ansatz versuchen:
cat bigfile.txt|
while IFS= read -r line; do
echo '%s\n' "$line" |shuf |sort -n| grep "sample";
done
IFS wird hier verwendet, um die Ausgabe in Zeilen aufzuteilen.