Я не знаю такой программы, но несколько раз хотел ее в прошлом.Основной синтаксис:
IFS='
' for f in $(except "*.c" "*.h" -- *); do
printf '%s\n' "$f"
done
В программе, которую я имею в виду, есть три режима:
- точное соответствие (с параметром
-e
) glob
сопоставление (по умолчанию, как показано в примере выше) - сопоставление регулярному выражению (с параметром
-r
)
Требуется исключение шаблонов из командной строки, за которым следует разделитель --
, за которым следуют имена файлов.В качестве альтернативы, имена файлов могут быть прочитаны из stdin
(если указана опция -s
), каждое в строке.
Такая программа не должна быть трудной для написания, как в C, так и в ShellКомандный язык.И это хороший пример для изучения основ Unix.Когда вы делаете это как программа-оболочка, вам, конечно, нужно искать имена файлов, содержащие пробелы и другие специальные символы.