AWKを使用して数値を0または1に変換

AWKを使用して数値を0または1に変換

これはおそらく簡単な質問かもしれませんが、生涯にわたってそれを理解することはできません。次のファイルがありますkeyout.dat

Title
1
Variable
-999
-999
0.234
0.123
-999
-999
0.555

ファイルは500,000行の間このように続きます。

-999すべてを0に設定し、他のすべてを1に設定して新しいファイルを作成したいと思います。明らかに単純なコマンドですが、他のファイルに印刷することはできません。

どんな助けでもいいでしょう。

ベストアンサー1

比較自体は0または1を返すので、直接印刷できます。

awk '{print $1!=-999;}' file > another_file

数値以外の行を保持するには、次のようにします。

awk '$1!=$1+0 {print $1;next;} {print $1!=-999;}' file > another_file

おすすめ記事