Именованный серийный приращение SED oneliner

Мне нужно увеличивать именованный серийный номер, и я хочу сделать это с помощью sed. Я сделал это вот так:

echo 2015092315 | gsed s/20[0-9][0-9][0-9][0-9]*/`date +%Y%m%d%H`/g 

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

Теперь я хочу увеличить серийный номер на 1. Как это сделать? Я придумал:

 gsed 's/20[0-9][0-9][0-9][0-9]*/expr & + 1/e' 

который работает, но он удаляет начало строки (пробелы) и конец строки (комментарий) и дает ошибку о комментарии (sh: serial: not found), который я не хочу.

One Solution collect form web for “Именованный серийный приращение SED oneliner”

Перл на помощь:

 perl -pe 's/(20[0-9]{3,})/$1+1/e' file 
  • исключая символ перед определенным символом в sed
  • BSD sed: заменить только N-е вхождение шаблона
  • Заменить все, кроме набора символов, в файле с символом новой строки
  • Вывод команды parse
  • Замена шаблона после n-го совпадения найдена в каждой строке?
  • Как извлечь данные из файла и построить имя файла из одного из значений
  • Замена текста из списка замен. Добавлено осложнение: обратная косая черта
  • Использовать sed для печати с первой строки до строки, содержащей последнее вхождение шаблона?
  • Заменить «o» на «0» в большом списке слов и сохранить исходное слово?
  • использование awk для распаковки файлов в каталоге
  • Сценарий оболочки для назначения значений из таблицы поиска слишком медленный
  • Как удалить символ новой строки из строк, предшествующих определенному шаблону?
  • Linux и Unix - лучшая ОС в мире.