Eu tenho uma lista de dados em uma tabela. Usando o awk para retirar a coluna 5, consegui diferenciar os dados entre as linhas. Se o entry at column 5
for more than 4
, o row should be printed
.
No entanto, há uma entrada que vem na forma de uma string que não pode ser comparada diretamente a um número, antes de decidir se deve ser impressa ou não. Essa entrada tem um parêntese ao redor do número que deve ser comparado.
Aqui está o exemplo da coluna 5:
on
%)
%
replica
(
0
(100.0 <= this one
0.0
10.8
13.8
12.0
16.3
13.2
12.1
11.4
10.4
0.0
devices:
Do exemplo acima, devo imprimir as linhas 8 e 10 a 17 da tabela.
Vou fornecer uma tabela de exemplo (file.txt):
1 0 0 0 on
2 0 0 0 %)
3 0 0 0 %
4 0 0 0 replica
5 0 0 0 (
6 0 0 0
7 0 0 0 0
8 0 0 0 (100.0
9 0 0 0 0.0
1 0 0 0 10.8
1 1 0 0 13.8
1 2 0 0 12.0
1 3 0 0 16.3
1 4 0 0 13.2
1 5 0 0 12.1
1 6 0 0 11.4
1 7 0 0 10.4
1 8 0 0 0.0
1 9 0 0 devices:
Minha tentativa:
awk '{if (($5>=4)) print;
else
NUMBER=($5 | grep -o -E '[0-9]+');
if (($NUMBER>=4)) print' file.txt
Erro:
awk: syntax error near line 2
awk: illegal statement near line 2
awk: syntax error near line 3
awk: illegal statement near line 3