Você pode tentar essa abordagem:
cat bigfile.txt|
while IFS= read -r line; do
echo '%s\n' "$line" |shuf |sort -n| grep "sample";
done
O IFS é usado para dividir a saída em linhas aqui.
Eu tenho um arquivo de texto com alguns GBs. Eu estou tentando embaralhar este arquivo de texto em um pipe.
Por exemplo, estas são algumas linhas de exemplo do que estou usando, mas não é eficiente e, de fato, 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 o arquivo de texto em um pipe, porque não quero gravar centenas de arquivos sempre que precisar de uma nova maneira de embaralhar ou distribuição aleatória.
obrigado
Tags command-line pipe linux shuffle