Necesito limpiar un archivo. Tenemos un analizador xml que se ejecuta en él que está fallando debido a un carácter de escape (0x1B) en el archivo. ¿Cómo uso vim para encontrar en qué parte del archivo está ese carácter para poder eliminarlo?Use vim para buscar por código hexadecimal
archivo Ejemplo:
<?php
echo "Hello, world.\n";
?>
Después de la conversión:
0000000: 0a3c 3f70 6870 0a65 6368 6f20 2248 656c .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.?
0000020: 3e0a
Así que borrar un carácter: (en este ejemplo, la 'H')
0000000: 0a3c 3f70 6870 0a65 6368 6f20 22 656c .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.?
0000020: 3e0a
Aviso cómo el La primera línea ya no es lo suficientemente amplia. Cuando convierto de nuevo, me sale:
^@<?php
echo "el^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@>
No estoy seguro de cuánto más detalles se necesitan. No te molestes en cambiar a la representación hexadecimal. Vim mostrará un carácter de escape como '^ ['. Búscalo usando cualquiera de mis métodos y, con el cursor sobre él, elimínalo usando 'x'. – Nefrubyr
Para la posteridad: el comentario de nerfrubyr se refería a un comentario que eliminé al solicitar una aclaración. Resulta que estaba escribiendo algo mal. Ambas ideas funcionan muy bien para esto. –
Nota para aquellos que tienen mapeado para "pegar" (por ejemplo, el valor predeterminado en Windows gvim): Tendrá que sustituir por para hacer el mismo truco con los caracteres de control. –
Chris