você quase faz isso
awk '(NR>1) && ($8 > 2 ) ' foo > bar
onde
-
NR
é o número de registros (que é o número da linha) -
$8
é oito campos -
&&
é lógico e -
foo
é o arquivo original, inalterado -
bar
arquivo resultante
A ação padrão implícita - é imprimir a linha de entrada atual
observe que o cabeçalho é distribuído de foo para bar, para mantê-lo
awk '(NR==1) || ($8 > 2 ) ' foo > bar
onde
-
||
é lógico ou - a linha de entrada é impressa se NR == 1 ou se $ 8 > 2
atualizar
para especificar um intervalo
-
( ($8 >= -4) && ( $8 <= 4 ) )
8º campo de -4 a 4 -
(NR == 1 ) || ( ($8 >= -4) && ( $8 <= 4 ) )
mesmo, incluindo cabeçalho.