Relacionado, pero sin respuestas satisfactorias: ¿Cómo puedo dividir un archivo de texto grande en partes de 500 palabras más o menos?
Estoy tratando de tomar un archivo de texto ( http://mattmahoney.net/dc/text8.zip ) con> 10 ^ 7 palabras en una sola línea, y dividirlo en líneas con N palabras cada una. Mi enfoque actual funciona, pero es bastante lento y feo (usando el script de shell):
i=0
for word in $(sed -e 's/\s\+/\n/g' input.txt)
do
echo -n "${word} " > output.txt
let "i=i+1"
if [ "$i" -eq "1000" ]
then
echo > output.txt
let "i=0"
fi
done
¿Algún consejo sobre cómo puedo hacer esto más rápido o más compacto?