Как условно заменить числа с помощью vim - PullRequest
2 голосов
/ 13 февраля 2020

Я вижу много дискуссий о том, как условно заменить строки, используя :%s. Но я хочу сделать именно это в моем файле с огромным количеством чисел в формате CSV:

  1. Найти числа < -100
  2. Заменить их на -98

Как я могу сделать это в VIM или любом другом языке редактора / сценария?

1 Ответ

3 голосов
/ 13 февраля 2020

Это возможно с помощью функции submatch() следующим образом:

:%s/-[0-9]\+/\=submatch(0) < -100 ? -98 : submatch(0)/g

Теперь каждое число меньше -100 будет заменено на -98, а остальные останутся прежними. Обратите внимание, что это регулярное выражение будет соответствовать только отрицательным числам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...