Domanda

Ho un file che è stato convertito da EBCDIC a ASCII. Dove ha usato per essere nuove linee ora ci sono personaggi che appaiono come <85> (un simbolo che rappresenta un singolo carattere, non i quattro personaggi sembra essere) e l'intero file è su una sola riga. Voglio cercare per loro e li sostituirà con nuove linee di nuovo, ma non so come.

Ho provato a mettere il cursore su uno e l'utilizzo di * per cercare l'occorrenza successiva, nella speranza che possa presentarsi nella mia storia / di ricerca. Che non ha funzionato. E 'appena cercato la parola che ha seguito la <85> carattere.

Ho cercato su google in giro un po ', ma non ho visto niente ovvio.

Il mio obiettivo è quello di costruire una ricerca e sostituzione stringa del tipo:

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

che attualmente mi dà:

E486: Pattern not found: <85>  

Grazie!

È stato utile?

Soluzione

questo post da una ricerca su Google. Sembra che si dovrebbe essere in grado di fare:

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

(Omettere il c di fare la sostituzione senza chiedere, provare con c prima per assicurarsi che sta facendo quello che vuoi fare.)

In vim, digitando :h \%x fornisce ulteriori dettagli. Oltre a \%x, è possibile utilizzare \%d, \%o, \%u e \%U per decimale, ottale, fino a quattro e fino a otto caratteri esadecimali.

Altri suggerimenti

provare questo: :%s/<85>/^M/g

Nota: premere Ctrl-V e quindi M

o se non ti dispiace utilizzando un altro strumento,

awk '{gsub("<85>","\n")}1' file
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top