Tengo un archivo de texto enorme (70 GB), una línea y quiero reemplazar una cadena (token). Quiero reemplazar el token <unk>, con otro token ficticio ( problema de guantes ).
Lo intenté sed:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
¡pero el archivo de salida corpus.txt.newtiene cero bytes!
También intenté usar perl:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
pero recibí un error de falta de memoria.
Para archivos más pequeños, funcionan los dos comandos anteriores.
¿Cómo puedo reemplazar una cadena es un archivo? Esta es una pregunta relacionada, pero ninguna de las respuestas funcionó para mí.
Editar : ¿Qué hay de dividir el archivo en trozos de 10 GB (o lo que sea) cada uno y aplicarlo seden cada uno de ellos y luego fusionarlos cat? ¿Tiene sentido? ¿Hay una solución más elegante?
splitcon la -bopción que define los tamaños de archivo de fragmentos en bytes. Procese cada uno a su vez usando sedy el remontaje Existe el riesgo de que <unk>se pueda dividir en dos archivos y no se encuentre ...