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

  • Отправка команды на экран и syslog
  • Как вы создаете команду grep & для соответствия ряду шаблонов в зависимости от того, сколько из них предусмотрено во время выполнения?
  • Указание параметров перенаправления через переменную в команде exec
  • Создание списка меню и выполнение задачи
  • Сед найти и заменить косой чертой
  • Извлечение почтовых адресов
  • Как автоматически определять и записывать в usb с переменными пространствами в его имени
  • 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

    ranger image-preview с прозрачным фоном терминала

    Перемещение уникальных файлов из папки с дубликатами файлов

    linux distro с общим названием жесткого диска

    Звуковые проблемы с pulseaudio

    Как применить сразу несколько профилей в Gentoo?

    Почему в команде bash отсутствуют псевдонимы?

    Как разрешить службе non-root systemd использовать dbus для операции BLE

    как изменить эффект sgdisk -R = / dev / sdb / dev / sda?

    Является ли чипом MMU (модуль управления памятью) необходимым для поддержки виртуальной памяти процессором?

    Исполняемая символическая ссылка приводит к «команде не найденной»,

    Найти файлы старше x времени в определенном каталоге с игнорированием подкаталогов

    SSH на нескольких серверах и сохранение вывода нескольких команд в файле на локальном сервере

    Найдите, какой процесс реализует файловую систему FUSE

    patsplit vs раскол в gawk

    Не удается найти сценарий оболочки

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