Comandos para grep e sed
Parece que a pergunta original foi formatada incorretamente. Portanto, os comandos mais simples do grep e do sed são:
egrep '[0-9]{2}$' /path/to/file
e
sed -rn '/[0-9]{2}$/p' /path/to/file
Deixarei as explicações abaixo, que incluem informações sobre esses comandos, mas também trabalho com várias strings em linhas simples. Eles ainda funcionarão, mas incluirão código adicional potencialmente estranho.
Grep
grep '[^ ]*[0-9]\{2\}( |$)' /path/to/file
Explicação
-
[^ ]*
Corresponde a qualquer número de caracteres não espaciais. -
[0-9]\{2\}
Combine dois dígitos. (Você poderia usar[0-9][0-9]
). -
( |$)
Os dígitos devem ser o fim de uma "palavra", portanto devem ser seguidos por um espaço ou um terminador de fim de linha.
Eu prefiro usar o grep estendido, já que você não precisará escapar das chaves. Portanto,
grep -E '[^ ]*[0-9]{2}( |$)' /path/to/file
ou
egrep '[^ ]*[0-9]{2}( |$)' /path/to/file
A pergunta foi editada, mas se houver várias correspondências em uma linha e você quiser apenas exibir as correspondências, use o sinalizador -o
. ou seja,
egrep -o '[^ ]*[0-9]{2}( |$)' /path/to/file
Sed
</path/to/file tr ' ' '\n' | sed -rn '/[0-9]{2}$/p'
Explicação
-
</path/to/file tr ' ' '\n'
Insira o arquivo e altere todos os espaços para novas linhas. -
sed -rn
Use expressões regulares estendidas (semelhantes às anteriores) com-r
e não imprima toda a saída imediatamente com-n
. -
[0-9]{2}$
Esta expressão regular é semelhante à anterior na linha grep. No entanto, como já removemos todos os espaços, não precisamos definir os caracteres não espaciais no início nem o espaço possível no final. -
/<regex>/p
Imprime as linhas correspondentes a<regex>
.