«e для выражения» является разумной интерпретацией, особенно в отличие от флага -E
для расширенного регулярного выражения (ERE ), который доступен по крайней мере в некоторых версиях grep
.
Можно использовать несколько флагов -e
для соответствия любому из нескольких выражений, например.:
# grep -e "nodes" -e "routers" /etc/hosts
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
И -e
допускает шаблоны, начинающиеся с тире, так что grep
не пытается интерпретировать шаблон как опцию/флажок:
# grep -e "-all" /etc/hosts
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Я понял это и хотел поделиться ответом на случай, если у кого-то возникнет такая же проблема. В частности, у меня была следующая строка в моей конфигурации:
и~
По какой-то причине это вызывало ошибку, и удаление строки устранило проблему.