grep не подходит для такой задачи, потому что это инструмент поиска, но если я правильно понимаю проблему, вы можете использовать sed, как в следующем примере:
sed 's/^\([0-9]\+\) \(.*\)$/\1;\2;/' input-file >output-file
Чтобы предупредительно проверить, что все строки соответствуют приведенному выше шаблону, запустите следующую команду
sed -n '/^\([0-9]\+\) \(.*\)$/!p' input-file
, которая ничего не должна возвращать.