しきい値より大きい列値を持つすべての行を取得する

しきい値より大きい列値を持つすべての行を取得する

行と列が多いファイルがあり、すべての行の列数が同じではありません。デルタ値が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

誰でも助けることができますか?これらのすべての行とそのデルタ値をどのように把握できますか?

ベストアンサー1

コメントで指摘したように、次の解決策はスペース以外の区切り文字に対してうまく機能します(たとえば、タブがあなたの場合のようです)。
区切り文字が空白の場合、次の回避策は機能しません。実際のフィールド区切り文字が何であるかを明確にする必要があります。

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 

値の型に問題がある場合は、次のことを試すこともできます。

awk -F"\t" '($5*1)>0.02' file

おすすめ記事