Как установить ввод GNU Indent
Я использую GNU indent
и я хочу использовать bash
сценарий, чтобы дать команду, которая принимает в качестве входных данных все мои файлы C (*.c
, *.h
) и выдает эти файлы в формате Indent.
Моя командная строка
indent | find -regex '.*/.*\.\(c\|h\)$' | xargs
Не работает, складывается.
1 ответ
Вы неправильно передаете аргументы indent
команда. Ваша команда просто ожидает ввода через стандартный ввод, но вы его не предоставили. Возможно, вы намеревались запускать команду для каждого результата изfind
команда, которую следовало записать как
find -regex '.*/.*\.\(c\|h\)$' -print0 | xargs -0 indent
В чистом виде bash
вам просто нужно передать их как позиционные параметры. Если исходный и заголовочный файлы находятся в каталоге, без вложенности, достаточно простого расширения glob
indent *.c *.h
Для многоуровневой структуры каталогов вы можете использовать find
find -regex '.*/.*\.\(c\|h\)$' -exec indent {} +