Увеличение переменной с помощью скрипта 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 и провалился!

  • Выделение подстроки с помощью expr
  • задать путь библиотеки для текущего скрипта
  • Сценарий оболочки не работает через работу cron
  • хранить последний файл каждого месяца и удалять остальные
  • Сценарий оболочки для перемещения файлов, если определенный процент строк содержит определенную строку
  • Использовать выходные данные в качестве переменной в арифметическом вычислении
  • Как я могу выполнить эхо-вывод команды, которая ничего не возвращает / null?
  • Почему «while .. read .. << EOL» выполняет расширение переменной, но <файл и | не?
  • 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

    установить ip default исходящий в centos

    Что такое эквивалент apt-файла в portage, если таковой имеется?

    Есть ли простой тест на что-либо, напечатанное на stderr в shell / Bash?

    Как зашифровать данные в папке в share samba и делиться им как зашифрованными, так и дешифрованными?

    Как создать файлы с именем «a to z» – любой трюк?

    Пользователи chroot ssh в домашнюю директорию

    Как разрешить брандмауэр RHEL7 передавать SNMP-соединение?

    Откройте новое окно терминала gnome с тем же каталогом, что и предыдущее окно.

    Отображение уникальной сети или веб-диска для каждого пользователя в Linux

    Как получить разницу в уровне персонажа с помощью команды «diff» в Linux с помощью сценария оболочки?

    Неполное обновление на фабрике делает файловую систему btrfs непригодной?

    Почему мой traceroute попадает в неправильные ворота?

    Почему я не могу установить командира полуночи на Debian?

    Используйте функцию автозаполнения терминала для ввода сценария оболочки

    Как создать символические ссылки из файла

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