obtém todas as linhas com um valor de coluna maior que um limite

0

Eu tenho um arquivo com muitas linhas e colunas, mas o número de colunas não é o mesmo em todas as linhas. Eu quero extrair todas as linhas com valor delta maior que 0,02

Point          Fanout   cap   trans   delta   incr   Path
----------------------------------------------------------
row1             1       0.02  0.01   0.00     0.03   0.04
row2             2       0.04
row3             1       0.01  0.02    0.04    0.05   0.06
row4                     0.03
row5                           0.04     0.05    0.07  0.07

Alguém pode ajudar? Como grep todas essas linhas e valor delta correspondente?

    
por ashutosh 05.04.2017 / 10:50

2 respostas

2

Como apontado nos comentários, para um delimitador que não seja o espaço (ou seja, a guia como parece ser o seu caso), as soluções abaixo funcionariam bem.
Se o delimitador for espaço abaixo, as soluções não funcionarão. Você precisa esclarecer qual é o separador de campos real.

awk -F"\t" '$5>0.02' file
#or
awk -F"\t" 'NR==1{print;next}$5>0.02' file #to keep the header
#or
awk -F"\t" 'NR==1 || $5>0.02' file  #also keeps header as advised in comments
#or 
awk -F"\t" 'NR<=2 || $5>0.02' file   #keep header and dashed row bellow header as advised by @Sundeep 

Se você tiver dúvidas sobre o formato dos valores numéricos, pode até tentar

awk -F"\t" '($5*1)>0.02' file
    
por 05.04.2017 / 11:03
0

Se o que você está tentando processar são PrimeTime relatórios de tempo para corrigir seu timing violations ou crosstalk noise violations , aconselho que você escolha os comandos (Tcl) fornecidos pela ferramenta EDA específica. .

Reinventar a roda não será realmente o caminho a seguir.

    
por 05.04.2017 / 17:21