Подтвердить что ты не робот

Как я могу найти символ, отображаемый как <85> в Vim?

У меня есть файл, который был преобразован из EBCDIC в ASCII. Там, где раньше были новые строки, теперь есть символы, которые отображаются как < 85 > (символ, представляющий один символ, а не четыре его символа), а весь файл находится в одной строке. Я хочу найти их и снова заменить их новыми строками, но я не знаю, как это сделать.

Я попытался поместить курсор над одним и использовать * для поиска следующего события, надеясь, что он может появиться в моей истории поиска. Это не сработало. Он просто искал слово, которое следовало за символом < 85 > .

Я искал некоторых, но не видел ничего очевидного.

Моя цель - создать строку поиска и замены, например:

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

Что в настоящее время просто дает мне:

E486: Pattern not found: <85>  

Спасибо!

4b9b3361

Ответ 1

Я нашел этот пост из поиска Google. Похоже, вы должны уметь:

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

(Опустите c, чтобы выполнить замену без запроса, сначала попробуйте c, чтобы убедиться, что он делает то, что вы хотите.)

В vim, набрав :h \%x, вы получите более подробную информацию. В дополнение к \%x вы можете использовать \%d, \%o, \%u и \%u для десятичных, восьмеричных, до четырех и до восьми шестнадцатеричных символов.

Ответ 2

попробуйте следующее: :%s/<85>/^M/g

Примечание: нажмите Ctrl-V вместе, затем M

или если вы не возражаете использовать другой инструмент,

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