Eu tenho este arquivo:
names average
john:15.02
Mark:09.63
James:12.58
Eu quero extrair apenas as médias maiores que 10, portanto a saída neste exemplo deve ser:
15.02
12.58
command-line
text-processing
Haikel Fazzani
fonte
fonte
[[ $0 > 10 ]]
como uma comparação lexical - e, em qualquer caso, não é de muita ajuda para valores não-inteirosCom o grep, você teria que trabalhar com expressões regulares; por exemplo
como com sed:
Mas o uso do RegEx em dados ordenados é propenso a erros (na minha experiência) e difícil de ler ;-).
fonte
grep ':[1-9][0-9]\+\.' <file | cut -d: -f2
esed -n 's/.*:\([1-9][0-9]\+\..*\)/\1/p' <file
. Vale ressaltar que isso funciona com> 1,> 10,> 100 etc. apenas, por exemplo,> 20 seria impossível.':[1-9][0-9]\+\.\?'
- o ponto decimal literal \. é opcional e corresponde no máximo uma vez \ ?. (@dessert Obrigado por apontar a restrição da minha RegEx.)