Если у вас есть GNU findutils, вы можете использовать find
для выполнения команд с найденными файлами, имя которых заканчивается на .c
или .h
:
% find -name '*.[ch]' -exec unifdef -m -UDEFINE_NAME '{}' ';'
exec
получает командудля которого будет подставлено имя файла, {}
- это место, где подставляется найденное имя файла, а ;
завершает команду.
С другой стороны, если вы используете zsh
в качестве оболочки, вы можетеиспользуйте рекурсивный глоб:
% unifdef -m -UDEFINE_NAME **/*.[ch]
Обратите внимание, что вам нужно -m
, чтобы фактически изменить файл на месте.