2010-01-18 6 views
16

Ich habe eine Datei, die von EBCDIC in ASCII konvertiert wurde. Wo es früher neue Zeilen gab, gibt es jetzt Zeichen, die als < 85> angezeigt werden (ein Symbol, das ein einzelnes Zeichen darstellt, nicht die vier Zeichen, die es zu sein scheint), und die ganze Datei befindet sich in einer Zeile. Ich möchte nach ihnen suchen und sie alle durch neue Zeilen ersetzen, aber ich weiß nicht wie.Wie kann ich nach einem Zeichen die Anzeigen als <85> in Vim suchen?

Ich habe versucht, den Cursor über einen und benutze *, um nach dem nächsten Vorkommen zu suchen, in der Hoffnung, dass es in meinem/Suchverlauf erscheinen könnte. Das hat nicht funktioniert. Es wurde nur nach dem Wort gesucht, das dem Zeichen < 85> folgte.

Ich googelte um einige, aber sah nichts Offensichtliches.

Mein Ziel ist es, eine Suche und ersetzen Zeichenfolge wie zu bauen:

E486: Pattern not found: <85> 

Danke:

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

das nur mir gibt zur Zeit!

+0

Sie können 'y ' drücken, um ein einzelnes Zeichen zu kopieren. –

Antwort

23

I this post von einer Google-Suche gefunden . Scheint, wie Sie tun sollten in der Lage:

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

(. Lassen Sie die c den Austausch zu tun, ohne Aufforderung, versuchen mit c zuerst sicherstellen, dass es das tut, was Sie es tun wollen)

In vim, Eingabe :h \%x gibt weitere Details. Zusätzlich zu \%x können Sie \%d, \%o, \%u und \%U für dezimale, oktale, bis zu vier und bis zu acht hexadezimale Zeichen verwenden.

+0

genagelt. Vielen Dank! –

-4

versuchen Sie dies: :%s/<85>/^M/g

Hinweis: Drücken Sie Strg-V zusammen dann M

oder wenn Sie nicht mit einem anderen Werkzeug nichts dagegen,

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

Das ist nicht das Problem. Es ist die <85>. Trotzdem danke. –

+0

es funktioniert für mich. zeigen Sie Ihre Beispieldatei – ghostdog74

+0

Die "<85>" ist ein einzelnes Zeichen, keine vier Zeichenfolge von <, 8, 5 und>. –

Verwandte Themen