Unix Vim搜索一个模式,如果它重复第二次,则删除到行尾
我正在尝试搜索一个模式,如果它重复第二次,请删除到行尾…,请帮助。Unix Vim搜索一个模式,如果它重复第二次,则删除到行尾,unix,vim,Unix,Vim,我正在尝试搜索一个模式,如果它重复第二次,请删除到行尾…,请帮助。 对于该用法,我正在使用:%s/my_character.*//g,但这将适用于一行中第一次出现的字符,但我需要从第二次出现的字符开始使用它…不确定我是否理解它,您应该给出一个简单的示例,它总是使它更清晰 我会这样做: :s/^\(.\{-}my_character.\{-}\)my_character.*$/\1/ 这将搜索: 尽可能少的字符在我的字符之前 我的性格 在第二个my_字符之前尽可能少的字符 我的性格 任何字符 并
对于该用法,我正在使用:%s/my_character.*//g,但这将适用于一行中第一次出现的字符,但我需要从第二次出现的字符开始使用它…不确定我是否理解它,您应该给出一个简单的示例,它总是使它更清晰 我会这样做:
:s/^\(.\{-}my_character.\{-}\)my_character.*$/\1/
这将搜索:
尽可能少的字符在我的字符之前
我的性格
在第二个my_字符之前尽可能少的字符
我的性格
任何字符
并将其替换为在上述步骤中从1到3捕获的字符
例如:
输入:
werklj z sdkl Azlksd er.
搜索和替换:
:s/^\(.\{-}z.\{-}\)z.*$/\1/
输出:
werklj z sdkl A