grep распознает только BREs , если не указан один из флагов -P
, -E
и -r
. А также там не нужны парены.
Вы должны использовать BRE, эквивалентный +
grep -n '\[[a-zA-Z+#]\{1,\}\]' filename
или укажите флаг -E
, чтобы он распознал EREs (который действительно менее переносим, чем предыдущий, но легче читается)
grep -E -n '\[[a-zA-Z+#]+\]' filename