我有100k行文件,有些行有未转义的撇号,如:
""Luis" number 4"
我想:
"\"Luis\" number 4"
那么如何才能找到所有超过2 "
个字符的行。是否可以在vim中轻松完成?否则它是用于简单的脚本任务。
答案 0 :(得分:1)
如果您只想查找此类行,可以按以下方式搜索:
/.*".*".*".*
其中.*
将匹配零个或多个字符,而"
是您正在寻找的字面引用。
第一个和最后一个.*
模式并非严格必要,但它们可确保在找到搜索时突出显示整行。
答案 1 :(得分:0)
你可以尝试
:%s/""\([^"]*\)"\(.*\)"/"\\"\1\\"\2"/
答案 2 :(得分:0)
%s/\v"(.*)"(.*)"(.*)"/"\1\\"\2\\"\3"/
打破这个局面:
%s
:代替每一行\v
:非常神奇(不必逃避正则表达式中的所有parens)"(.*)"(.*)"(.*)"
:引号中的任何内容都引用任何引号用引号替换,开头内部引用(\1
),转义引号,内引号内的所有内容(\2
),另一个转义引号,然后是其余内容({ {1}})和一个接近的引用。