Увеличение переменной с помощью скрипта Bash

У меня есть файл, содержащий следующий текст.

// // test_file.h // test project // // Created by Test User // #ifndef test_file_constants_h #define test_file_constants_h // Generic includes #include <stdlib.h> #include <string.h> #include <stdbool.h> #define PF_MASTER_VERSION 3.0.0 #define PF_BUILD_VERSION 1 #endif 

Мне нужно написать скрипт, который может увеличивать PF_BUILD_VERSION на каждый каждый раз, когда он запускается. Я пробовал смотреть на sed и AWK и провалился!

  • Bash: date -d выбрасывает «недопустимую дату», когда дата параметризуется
  • Терминал не вызывает «then», сообщает синтаксическую ошибку, а команда не найдена
  • grep script - выводит строки одновременно в эхо
  • SSH дважды и запустить команду, экранируя символ?
  • Использование && и || операторы для обработки результата одной и той же команды
  • Помогите мне понять, что здесь делает
  • Вызов java из Bash: «Невозможно выполнить двоичный файл»
  • Передача значений в скрипт
  • 2 Solutions collect form web for “Увеличение переменной с помощью скрипта Bash”

    Решение на основе awk может быть:

     awk '/^#define PF_BUILD_VERSION / {$3++} 1' infile >outfile && mv outfile infile 

    Подход Perl:

     perl -pe 's/^#define PF_BUILD_VERSION \K(\d+)/$1+2/e' file > newfile 

    Или, чтобы отредактировать файл на месте:

     perl -i -pe 's/^#define PF_BUILD_VERSION \K(\d+)/$1+2/e' file 
    Interesting Posts

    Как настроить сеанс OpenBox для открытия файлов с помощью типа mime?

    не может определить ошибку в сценарии оболочки неожиданный оператор

    Как выполнить shellscript, когда я подключаю USB-устройство

    shell для возврата имени рабочего стола kde

    Не удалось выполнить скрипт

    Как настроить gnome keyring для ssh / sshfs без пароля с помощью брелка для разблокировки ключа с помощью хранимой кодовой фразы?

    Использовать ранее напечатанный текст в команде

    отображать сообщение дня во временном интервале, скажем, каждый час

    список всех компонентов компьютера ARM в Linux?

    Выход stat на OSX

    / etc / hosts. Можно ли установить один IP-адрес для зоны?

    ln -s с дорогой относительно pwd

    Удалите всю строку в файле, если первый столбец повторяется

    Файл журнала 29GB на Монетный двор Linux на разделе 38 ГБ

    Debian: Как я могу легко выбрать зеркальный список, как это было при установке системы?

    Linux и Unix - лучшая ОС в мире.