Используйте глобальную команду для захвата первого номера, и если второе число будет одинаковым, оно будет соответствовать регулярному выражению.
:g/\v(-?\d+(\.\d+)?),\s\1,/d
Или не очень магическими
:g/\(-\?\d\+\(\.\d\+\)\?\),\s\1,/d
Пояснения для регулярных выражений.
\v
включается очень магия в Vim
(
начать регулярное выражение захвата/обратной ссылки
-?
необязательный знак минус
\d+
матч любое число 1 или несколько раз (которые получают захвачена обратной ссылки)
(\.\d+)
дополнительная десятичная запятая
)
end regex capture
,
матч запятая
\s
матч некоторая форма пробельных
\1
матч по той же схеме, что был захвачен в первой обратной ссылки (в этом случае первое число) (то есть убедиться, что номера одинаковы
,
убедитесь, что номер продолжается до следующей запятой
:g
короток для :global
, который для каждой строки, которая соответствует регулярному выражению выполняет команду экс после него. Команда в этом случае равна d
, которая удаляет строку.
:g/regex/cmd
Взгляните на :h :g
и :h pattern-searches
Можете ли вы уточнить, как это работает. – DurgaDatta
Даже строка «11, 14, 4» удаляется. – DurgaDatta
@DurgaDatta Regex Я там не удаляю «11, 14, 4» – FDinoff