awk
3列のデータセットの2番目の列をチェックし、ゼロでない場合はその値を置き換えるために使用しようとしています。この正規表現でゼロ以外の数値を見つけることができましたが、 と組み合わせgsub
てprint
内容を置き換えて新しいファイルに出力する方法がわかりません。gsub
最初または3番目ではなく、2番目の列でのみ実行したい。これを行うための簡単なawk
ワンライナーはありますか? それとも、もっと複雑なことをしようとしていますか? ゼロをチェックする式を実行しようとさえしましたが、で if/else ステートメントを実行する方法がわかりませんawk
。
私が半成功したコマンドは次のとおりです。
awk '$2 != 0 {print $1, 1, $3}' input > output
問題は、2 番目の列がゼロの場合、行が出力されないことです。これは、どちらかまたはif/elseステートメントが機能すると思った場所ですが、構文がわかりgsub
ません。awk
これに関するガイダンスをいただければ幸いです。