2011-10-05 17 views
5

Estoy tratando de eliminar un montón de^K de un archivo en Linux para la clase, pero todo lo que he estado intentando no funciona.eliminar caracteres especiales de un archivo en Linux

líneas así que un gato memo.txt de archivo, en doble espacio

I menos el archivo y tiene^K después de cada línea de

Estoy tratando de eliminar el^K y de salida en un nuevo archivo

he tratado

cat memo.txt | tr -d "\n" > memo.new 
cat memo.txt | tr -d "^K" > memo.new 

y algunas otras funciones de sed.

+3

Cada personaje es especial a su manera. –

Respuesta

5

Es posible que desee probar algo como esto:

tr -d '\013' <memo.txt> memo.new 

013 es el valor octal para el personaje ^K.

+0

Gracias por la respuesta y no solo por una página man. Sé que esto es para la escuela, pero lo intenté. – BillPull

+0

También puede obtener el valor presionando Ctrl + v seguido de Ctrl + K. Ctrl + v hace que la siguiente entrada proporcione su valor literal en lugar de tener su efecto normal – Daenyth

+0

@Jonathan Callen, ¿cómo encontraste el valor octal de^K? –

1

Tenga una mirada en:

man strings 

esa es mi humilde opinión exactamente lo que quiere ...

+2

¿Siente la necesidad de potencialmente destruir el contenido solo para eliminar un solo personaje por completo? –

0

Creo que la respuesta de ABCD funcionará. Pero si esto no funciona, intente lo siguiente:

tr -d "`echo -e '\013'`" <memo.txt> memo.new 

El comando echo incrustado le salida de la actual carácter^K, por lo tr sabrá exactamente lo que desea eliminar.

Cuestiones relacionadas