Конечно, в этом и состоит смысл регулярных выражений:
sed [-i] 's/^#define ar [0-9]\+$/#define ar 12345/' <file>
Переключатель -i
заставляет sed работать с файлом на месте;не включайте его в первый раз, чтобы позволить ему печатать на стандартный вывод и убедитесь, что он выполняет то, что вы хотите.
Конечно, из вашего первого описания это звучит так, как будто вы хотите соответствовать больше, чем просто #define ar
.Чтобы сопоставить все двухбуквенные #defines:
sed [-i] 's/^\(#define [a-z]\{2\}\) [0-9]\+$/\1 12345/`
\1
заменяется тем, что было сопоставлено группой \(...\)
.