Solución:
Usar tr
:
tr -d '^M' < inputfile
(Tenga en cuenta que el ^M
El carácter se puede ingresar usando Ctrl + VCtrl + M)
EDITAR: Como sugirió Glenn Jackman, si está usando bash
, también podrías decir:
tr -d $'r' < inputfile
sigue siendo la misma línea:
sed -i 's/^M//g' file
cuando escribe el comando, por ^M
tu escribes Ctrl + VCtrl + M
en realidad, si ya ha abierto el archivo en vim, puede hacerlo en vim:
:%s/^M//g
mismo, ^M
tu escribes Ctrl-V Ctrl-M
Simplemente puede usar dos2unix, que está disponible en la mayoría de los sistemas Unix / Linux. Sin embargo, encontré que el siguiente comando sed es mejor, ya que eliminó ^ M donde dos2unix no pudo:
sed 's/r//g' < input.txt > output.txt
Espero que ayude.
Nota: ^ M es en realidad un carácter de retorno de carro que se representa en el código como r Lo que hace dos2unix es probablemente equivalente a:
sed 's/rn/n/g' < input.txt > output.txt
No elimina r cuando no es seguido inmediatamente por ny reemplaza ambos con solo n. Esto falla con ciertos tipos de archivos como el que acabo de probar.