2010-01-18 9 views
16

Tengo un archivo que se convirtió de EBCDIC a ASCII. Donde solía haber nuevas líneas, ahora hay caracteres que aparecen como < 85> (un símbolo que representa un solo carácter, no los cuatro caracteres que parece ser) y todo el archivo está en una línea. Quiero buscarlos y reemplazarlos por líneas nuevas, pero no sé cómo.¿Cómo puedo buscar un personaje que se muestre como <85> en Vim?

Intenté colocar el cursor sobre una y usar * para buscar la siguiente ocurrencia, esperando que se muestre en mi/historial de búsqueda. Eso no funcionó. Simplemente buscó la palabra que siguió al < 85> personaje.

Busqué en Google algunos, pero no vi nada obvio.

Mi objetivo es construir una búsqueda y reemplazo cadena como:

:%s/<85>/\n/g 

que en la actualidad sólo me da:

E486: Pattern not found: <85> 

Gracias!

+0

Puede presionar 'y ' para copiar un solo caracter. –

Respuesta

23

He encontrado this post de una búsqueda en Google . Parece que usted debería ser capaz de hacer:

:%s/\%x85/\r/gc 

(. Omitir el c hacer la sustitución sin preguntar, tratar con c primero para asegurarse de que está haciendo lo que quiere que haga)

En vim, escribiendo :h \%x da más detalles. Además de \%x, puede usar \%d, \%o, \%u y \%U para decimales, octales, hasta cuatro y hasta ocho caracteres hexadecimales.

+0

Clavado. ¡Gracias! –

-4

probar esto: :%s/<85>/^M/g

nota: presione Ctrl-V junto a continuación, M

o si no les importa usar otra herramienta,

awk '{gsub("<85>","\n")}1' file 
+0

\ n no es el problema. Es el <85>. Gracias sin embargo. –

+0

me funciona. muestre su archivo de muestra – ghostdog74

+0

El "<85>" es un solo carácter, no una cadena de cuatro caracteres de <, 8, 5 y>. –

Cuestiones relacionadas