O padrão GNU grep reconhece BRE (expressões regulares básicas) e * é um metacaractere original no BRE, enquanto + é uma extensão do BRE. Para que + seja reconhecido como metacaractere no BRE, ele deve ser evitado. No entanto, se você disser grep para usar ERE (expressões regulares estendidas) usando o sinalizador -E , não será necessário escapar de nenhum metacaractere (se você escapar deles, eles se tornarão literais). Há um pouco de explicação no manual do grep e
$ grep -E 'hi +hello' test
hi hello
hi hello
Você também pode usar egrep
$ egrep 'hi +hello' test
hi hello
hi hello
Eu decido usar o BRE ou o ERE com base no número total de barras invertidas que terei que digitar ...