grep ou sed para encontrar um valor inteiro acima de um determinado valor?

4 respostas

14

Use awk da seguinte forma:

$ echo '*EXTRA File     78223    C:\foo.pdf' | awk '$3 > 1048576 {print $0;}'
$ echo '*EXTRA File     78223    C:\foo.pdf' | awk '$3 > 40000 {print $0;}'
*EXTRA File     78223    C:\foo.pdf
    
por 02.09.2011 / 21:58
3

Além disso - se você estiver usando um território Unix-like (como UnxUtils ou Cygwin, se estiver no Windows), você pode usar find com o parâmetro -size para obter sua lista de arquivos diretamente e canalize para xargs e faça o que estiver tentando fazer com os arquivos selecionados.

A resposta geral à sua pergunta (comparações interessantes e outras operações) é de fato awk ou bash (com bc) ou perl - mas o cenário específico se presta a find .

    
por 02.09.2011 / 22:17
2

Em puro Bash:

while read -r _ _ size _; do ((size > 10485760)) && echo "hit"; done < foo.log
    
por 02.09.2011 / 22:19
0

Perl pode ser usado de forma semelhante ao awk:

echo '*EXTRA File 78223 C:\foo.pdf' | perl -ane 'print if $F[2] > 40000'

    
por 03.12.2015 / 02:30

Tags