dpkg-parsechangelog работает, а более ранний ответный вывод вывода через sed / grep должен быть полностью надежным. Если вы хотите узнать точную информацию о формате вывода dpkg-parsechangelog и большинстве других файлов управления в стиле debian, см. RFC 822. В версии пакета deb всегда нет версии, содержащей новую строку, пробел или любые другие специальные или (см. man deb-version), поэтому строка «Version: blah» на выходе всегда будет присутствовать, и она всегда будет отдельной строкой.
Однако dpkg-parsechangelog очень тяжелая программа для запуска только для получения текущего номера версии из журнала изменений. Он должен запускать Perl и загружать впечатляюще большое количество библиотек, чтобы дать вам результат, большинство из которых вы не будете использовать. На более медленных платформах или с медленными файлами хранения файлов, или когда вам нужно много раз обрабатывать эту версию, это будет довольно болезненно медленным. Вместо этого просто используйте все, что находится внутри первого набора скобок в первой строке:
head -1 debian/changelog | awk -F'[()]' '{print $2}'
Это даст вам правильную версию текущего пакета с любым допустимым файлом changelog, использующим стандартный формат (и нестандартный debian/changelog форматы для всех практических общих целей никогда не используются).