Convertir por lotes la codificación de archivos txt

Convertir por lotes la codificación de archivos txt

Tengo alrededor de 700 archivos que fueron el resultado de un proceso de software de subtítulos. Puedo abrir los archivos en mi PC o Mac en una GUI, pero cuando los abro en el servidor con nano, aparece esto:

��0^@0^@;^@0^@0^@;^@0^@0^@;^@0^@0^@ ^@0^@0^@;^@0^@0^@;^@0^@6^@;^@0^@0^@
^@
^@N^@o^@t^@ ^@A^@v^@a^@i^@l^@a^@b^@l^@e^@

Estos son los resultados de algunas de las cosas de la línea de comandos que he probado:

#file infile.txt 
infile.txt: data

# file -bi --mime-encoding  infile.txt 
application/octet-stream; charset=binary

recode ../CR-LF infile.txt
#file -bi --mime-encoding  infile.txt

#iconv -f binary -t uff-8 infile.txt > out.txt
iconv: conversions from `binary' and to `uff-8' are not supported

#recode ../CR-LF infile.txt
#recode UTF8..ISO-8859-15 infile.txt 
# file -bi --mime-encoding  infile.txt 
text/plain; charset=utf-16le

#xxd infile.txt | head -5
0000000: fffe 3000 3000 3b00 3000 3000 3b00 3000  ..0.0.;.0.0.;.0.
0000010: 3000 3b00 3000 3000 2000 3000 3000 3b00  0.;.0.0. .0.0.;.
0000020: 3000 3000 3b00 3000 3600 3b00 3000 3000  0.0.;.0.6.;.0.0.
0000030: 0d00 0d0a 004e 006f 0074 0020 0041 0076  .....N.o.t. .A.v
0000040: 0061 0069 006c 0061 0062 006c 0065 00    .a.i.l.a.b.l.e.

El archivo real se ve así (resulta que no fue la mejor opción, accidentalmente elegí uno sin mucho contenido):

00;00;00;00 00;00;06;00 Not Available

Luego, si nano el archivo, aparece un texto en la parte inferior que dice que se convirtió del formato DOS y Mac, pero sigue siendo basura. Necesito poder recorrer los archivos e importar los datos a una base de datos, pero, por supuesto, no puedo hacerlo si el servidor no puede leer el formato.

Me gustaría encontrar una solución a largo plazo ya que generaré muchos de estos en el futuro y preferiría no usar Windows PowerShell o equivalente, sino incorporar la conversión a mi proceso.

Respuesta1

Entonces la solución para mí terminó siendo usar recodificar. No hay mucha documentación excelente, pero el truco consistía en usar la opción -f para obligarlo a cambiarlo.

recode -f UTF-7 *.txt

información relacionada