gsed: поиск, приращение и замена рекурсивно - PullRequest
0 голосов
/ 25 марта 2020

Итак, у меня есть куча файлов, разбросанных и глубоко вложенных в каталог, и я хотел бы найти, увеличить на 2 и заменить число в каждом вхождении строки, например, fontSize: 10.

Для пример:

fontSize: 10 становится fontSize: 12

, а fontSize: 30 становится fontSize: 32,

Я пробовал gsed -r 's/(.*)(\?fontSize=)([0-9]+)(.*)/echo "\1\2$((\3+1))\4"/ge' file.kt, но, похоже, не работает даже для отдельных файлов, и более того, я хочу, чтобы он работал на нескольких файлах.

1 Ответ

1 голос
/ 25 марта 2020

Так как вам нужно заниматься математикой, sed, ed и друзья не будут работать. Что-то вроде:

find dir/ -name "*.kt" -exec perl -pi -e 's/fontSize: \K(\d+)/$1 + 2/eg' '{}' +

должно это сделать.

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