タブで区切られた次のファイルがあります。
name v1 v2 v3 v4
g1 4.5 2.3 2.1 0.2
g2 10 3 5 2.3
g3 7 2.5 2.8 3.9
5つの列と4つの行(ヘッダーを含む)を持つダミーファイルが表示されます。行をフィルタリングし、特定の行の各列の値が2より大きい場合はその行を保持し、それ以外の場合は削除します。出力は次のようになります。
name v1 v2 v3 v4
g2 10 3 5 2.3
g3 7 2.5 2.8 3.9
awkを使ってこれを行うにはどうすればよいですか?
ベストアンサー1
AFAIK awkにはフィールドを明示的に繰り返す方法はありません。たとえば、
$ awk 'NR>1 {for(i=2;i<=NF;i++) if($i+0 < 2) next} 1' file
name v1 v2 v3 v4
g2 10 3 5 2.3
g3 7 2.5 2.8 3.9