2010-01-18 20 views
16

Tôi có một tệp đã được chuyển đổi từ EBCDIC sang ASCII. Trường hợp có sử dụng để được dòng mới có bây giờ ký tự hiển thị như < 85> (một biểu tượng đại diện cho một nhân vật duy nhất, không phải là bốn ký tự nó xuất hiện được) và toàn bộ tập tin là trên một dòng. Tôi muốn tìm kiếm chúng và thay thế tất cả chúng bằng các dòng mới một lần nữa, nhưng tôi không biết làm thế nào.Làm cách nào để tìm kiếm ký tự hiển thị dưới dạng <85> trong Vim?

Tôi đã thử đặt con trỏ lên một và sử dụng * để tìm kiếm lần xuất hiện tiếp theo, hy vọng rằng nó có thể hiển thị trong lịch sử tìm kiếm/của tôi. Điều đó không hiệu quả. Nó chỉ tìm kiếm từ theo sau ký tự < 85>.

Tôi googled xung quanh một số, nhưng không thấy bất cứ điều gì rõ ràng.

Mục tiêu của tôi là xây dựng một tìm kiếm và thay thế chuỗi như:

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

nào hiện chỉ mang lại cho tôi:

E486: Pattern not found: <85> 

Cảm ơn!

+0

Bạn có thể nhấn 'y ' để sao chép một ký tự. –

Trả lời

23

tôi thấy this post từ một tìm kiếm google . Có vẻ như bạn sẽ có thể làm:

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

(. Bỏ qua c để làm việc thay thế mà không nhắc, hãy thử với c đầu tiên để đảm bảo nó là làm những gì bạn muốn nó làm)

Trong vim, nhập :h \%x để biết thêm chi tiết. Ngoài \%x, bạn có thể sử dụng \%d, \%o, \%u\%U cho số thập phân, bát phân, tối đa bốn và tối đa tám ký tự thập lục phân.

+0

Đóng đinh nó. Cảm ơn! –

-4

thử điều này: :%s/<85>/^M/g

lưu ý: nhấn Ctrl-V với nhau sau đó M

hoặc nếu bạn không nhớ sử dụng một công cụ khác,

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

\ n không phải là vấn đề. Đó là số <85>. Cảm ơn mặc dù. –

+0

nó hoạt động cho tôi. hiển thị tệp mẫu của bạn – ghostdog74

+0

"<85>" là một ký tự đơn, không phải là chuỗi gồm 4 ký tự <, 8, 5 và>. –

Các vấn đề liên quan