行を削除したいゼロ以外のすべての要素1未満
私のファイルは
a 2 0 0 0 9
b 3 0 0 0.7 13
c 0.3 0.5 0 0 0
d 0.4 7.96681779026634e-05 0 0
期待される出力は
a 2 0 0 0 9
b 3 0 0 0.7 13
私は初心者です。awk '{for(i=2;i<=NF;i++){if($i+0=0 print $0; else < 1) next}} 1'
以前のコードを次のように編集して試してみました。このリンク、しかし、私は何か間違っています。
答え1
試す:
$ awk '{f=0; for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1} f' file
a 2 0 0 0 9
b 3 0 0 0.7 13
コードでは変数を使用しますf
。 がf
true (ゼロ以外) になった場合は、行を出力します。
f=0
各行を
f
false(印刷しない)に設定して開始します。for(i=2;i<=NF;i++) if($i+0!=0 && $i+0>=1)f=1
いずれかの要素がゼロ以外で 1 より大きい場合は、(true)
f
に設定されます。1
f
f
が真(ゼロ以外)の場合、この行を出力します。