Согласно man grep
Точка. соответствует любому одиночному символу.
таким образом grep .c
соответствует любому символу, за которым следует c
Возможно, вы ищете grep -v \ .c
или лучше grep -v '\ .c $'
, где
\.
Особое значение. c
$
конец строки (при передаче по конвейеру в ls выводится одна строка с именем файла) согласно подстановочному знаку, вы также можете использовать grep -vF .c
-F
флаг указывает grep использовать arg как простую строку, а не регулярное выражение.
Почему бы не использовать:
%define __requires_exclude ^perl(\s|)\(.*\)$