grep
cotação manual:
-o, --only-matching
Imprime apenas as partes correspondentes (não vazias) de uma linha correspondente, com cada parte em uma linha de saída separada.
matched (non-empty) parts of a matching line
significa linha não vazia certo?
Atualizar
Caso os comentários sejam excluídos, da resposta de Stephen abaixo:
- Paráfrase: Que tal "strings vazias em uma linha" em vez de "partes vazias de uma linha correspondente"? – Lahor 10 horas atrás
- Acho que o rótulo importante é “peças combinadas”; “cordas combinadas” também funcionariam, não sou a pessoa certa para perguntar o que é melhor. – Stephen Kitt 59 minutos atrás
Ele realmente se refere a partes não vazias de uma linha correspondente, não a linhas não vazias. O resultado é que a saída contém apenas linhas não vazias, cada uma contendo uma correspondência não vazia.
grep -o
imprime uma linha por partida:mas não gera correspondências vazias. Muitas expressões regulares podem corresponder a texto vazio; por exemplo:
gera uma linha em branco porque a linha vazia corresponde. No entanto, adicionar
-o
resulta em nenhuma saída:porque
-o
ignora correspondências vazias.Especificar que
-o
ignora correspondências vazias significa que os implementadores não precisam decidir o que fazer com correspondências de comprimento zero, que de outra forma produziriam uma saída bastante longa (e inútil) em muitas circunstâncias.Considere estes dois comandos:
isso não produz nada, pois corresponde ao início da linha e está vazio, portanto, não a gera.
isso gera a parte correspondente (não vazia) da linha correspondente, com cada parte em uma linha de saída separada.