行と列が多いファイルがあり、すべての行の列数が同じではありません。デルタ値が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
答え2
PrimeTime
問題を解決するタイミングレポートを処理する場合は、特定のツールが提供するtiming violations
コマンド(Tcl)をcrosstalk noise violations
使用することをお勧めします。EDA
車輪を再発明することは実際に答えではありません。