bash - convert - unix crlf
Convertir terminaciones de lĂnea (2)
Algunas opciones:
Usando tr
tr -d ''/15/32'' < windows.txt > unix.txt
O
tr -d ''/r'' < windows.txt > unix.txt
Usando perl
perl -p -e ''s//r$//'' < windows.txt > unix.txt
Usando sed
sed ''s/^M$//'' windows.txt > unix.txt
O
sed ''s//r$//'' windows.txt > unix.txt
Para obtener ^M
, debe escribir CTRL-V
y luego CTRL-M
.
Esta pregunta ya tiene una respuesta aquí:
He estado usando d2u
para convertir los finales de línea. Después de instalar Puppy Linux noté que no viene con d2u
, sino con dos2unix
. Entonces noté que Ubuntu faltaba tanto por defecto.
¿Cuál es otra forma de convertir finales de línea?
Hacer esto con POSIX es complicado:
POSIX Sed no es compatible con
/r
o/15
. Incluso si lo hizo, la opción in-situ no es POSIXPOSIX Awk admite
/r
y/15
; sin embargo, la opción-i inplace
no es POSIXd2u y dos2unix no son utilidades POSIX , pero ex
POSIX ex no es compatible con
/r
,/15
,/n
o/12
Para eliminar devoluciones de carro:
awk ''BEGIN{RS="^$";ORS="";getline;gsub("/r","");print>ARGV[1]}'' file
Para agregar retornos de carro:
awk ''BEGIN{RS="^$";ORS="";getline;gsub("/n","/r&");print>ARGV[1]}'' file