Eu tenho um arquivo de texto com alguns GBs. Estou tentando embaralhar esse arquivo de texto em um pipe.
Por exemplo, estes são alguns exemplos de linhas do que estou usando, mas não são eficientes e, na verdade, o pipe não parece iniciar até que todo o arquivo seja lido. Talvez eu esteja errado nisso.
shuf HUGETEXTFILE.txt|some command
cat HUGETEXTFILE.txt|sort -R |some command
Eu também tentei usar
split -n 1/numberofchunks HUGETEXTFILE.txt|sort -R|some command
Mas a tubulação termina quando o primeiro pedaço termina.
Estou tentando encontrar uma maneira eficiente de canalizar arquivos de texto embaralhados em um canal, porque não quero escrever centenas de arquivos sempre que precisar de uma nova maneira de embaralhar ou distribuir aleatoriamente.
obrigado
Responder1
Você pode tentar esta abordagem:
cat bigfile.txt|
while IFS= read -r line; do
echo '%s\n' "$line" |shuf |sort -n| grep "sample";
done
IFS é usado para dividir a saída em linhas aqui.