2つのフィールドのフィルタ基準に基づいてすべてのレコードを選択します。

2つのフィールドのフィルタ基準に基づいてすべてのレコードを選択します。
ABC,1234.5333,5733.9374,5673.352,352,2.346374,-0.6686874
XYZ,5463.674,93773.683,5734.874,432,-5.683423,-10.38393
AES,7436874.5743,937.6843,8464.5634,564,6.35739,10.6834
PQR,784945.464,57484.8647,57484.453,5764,-10.67484,5.74764

上記のcsvファイルで、最後の2つのフィールド[ABS(6番目のフィールド)またはABS(7番目のフィールド)]のいずれかの絶対値が> = 10のすべてのレコードを選択するシェルスクリプトを作成する必要があります。

その結果、私の出力は次のようになります。

XYZ,5463.674,93773.683,5734.874,432,-5.683423,-10.38393
AES,7436874.5743,937.6843,8464.5634,564,6.35739,10.6834
PQR,784945.464,57484.8647,57484.453,5764,-10.67484,5.74764

ベストアンサー1

示唆したように、awkを使用してこれを達成できます。絶対値を取得するには、独自の関数を定義する必要があります。したがって、次のように使用できます。

awk -F, 'function abs(a) {return a < 0 ? -a : a};(abs($6) >= 10 || abs($7) >= 10)' inputfile.txt 
XYZ,5463.674,93773.683,5734.874,432,-5.683423,-10.38393
AES,7436874.5743,937.6843,8464.5634,564,6.35739,10.6834
PQR,784945.464,57484.8647,57484.453,5764,-10.67484,5.74764

おすすめ記事