我有一个从EBCDIC转换为ASCII的文件。在曾经有过新行的地方,现在有的字符显示为< 85>。 (表示单个字符的符号,而不是它看起来的四个字符),整个文件在一行上。我想搜索它们并再次用新行替换它们,但我不知道如何。
我尝试将光标放在一个上并使用*来搜索下一个匹配项,希望它可能显示在我的/搜索历史记录中。那没用。它只搜索了< 85>之后的单词。字符。
我搜索了一些,但没有看到任何明显的东西。我的目标是构建搜索和替换字符串,如:
:%s/<85>/\n/g
目前只是给了我:
E486: Pattern not found: <85>
谢谢!
答案 0 :(得分:25)
我在谷歌搜索中找到了this post。看起来你应该能够做到:
:%s/\%x85/\r/gc
(在没有提示的情况下忽略c
进行替换,首先尝试c
以确保它正在执行您希望它执行的操作。)
在vim中,输入:h \%x
会提供更多详细信息。除了\%x
之外,您还可以将\%d
,\%o
,\%u
和\%U
用于十进制,八进制,最多四个和最多八个十六进制字符。
答案 1 :(得分:1)
对于特殊字符搜索,例如对于<80>
,<90>
,<9d>
来说是win1252 ...
类型:
/\%u80, \/%u90, /\%u9d ...
来自编辑器。
类似地,对于八进制,十进制,十六进制,键入:/\%oYourCode
,/\%dYourCode
,/\%xYourCode
。
答案 2 :(得分:-4)
试试这个::%s/<85>/^M/g
注意:按Ctrl-V然后按M
或者如果您不介意使用其他工具,
awk '{gsub("<85>","\n")}1' file