
Estou no Ubuntu 16.04
Tentando:
grep '.*' file1
Saída:
file nu-mber o-ne second string
Tentando:grep '.+' file1
A saída está ausente
Por que o plus não está funcionando?
Responder1
Você precisa contargrep
você está usando uma expressão regular estendida:
grep -E '.+' file1
O padrãoExpressão Regular Básica(conforme usado por grep
sem -E
) equivalente aoExpressão regular estendida +
operador é \{1,\}
embora algumas implementações (como as do GNU) também reconheçam \+
isso como uma extensão (e você sempre pode usar ..*
).
(Observe que, neste caso específico, grep -E .+
é equivalente a grep -E .
procurar substrings que correspondam ao regex quando não estiver usando a -x
opção. Em muitos sistemas, egrep
é fornecido como um comando equivalente a grep -E
, mas comoGraeme apontaisso éobsoleto.)
Responder2
Com o GNU grep (padrão no Ubuntu), você também pode ativar o comportamento estendido com uma barra invertida. Por exemplo:
grep '.\+' file1
Responder3
Acredito que + é um metacaractere de expressão regular estendido. Tente usar egrep
.