Как изменить текущую строку в BASH с помощью регулярных выражений - PullRequest
1 голос
/ 13 октября 2019

Моя задача - изменить все имена функций в исходном коде C (определения, объявления и комментарии), которые имеют только одно подчеркивание и только маленькие буквы. Например, my_func (void) ----> myFunc (void). как мне это сделать? В своем коде я проверяю, содержит ли строка файла имя функции, которую я должен изменить, но я не знаю, как это сделать. Или, может быть, эта задача имеет более эффективное и лучшее решение?

while read line; do
   if [[ "$line" =~ ^(int|char|float|long|short|void|double)?[[:space:]]?[^_]([a-z0-9]+[_]?)+[(]([a-z[:space:]])*[)][:space:]*[{]? ]]; then
      # here should be the code
   fi
done < ${FILENAMES[i]}

Я понимаю, что здесь следует использовать 'sed', как

sed -i 's/_//' ${FILENAMES[i]}

, но эта команда меняет все строки моегофайл, не только то, что я хочу и должен изменить. Спасибо.

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