ファイルがあるとします:
PRO 1
GLN 5.55112e-17
ILE -6.245e-17
THR 5.55112e-17
2番目の列の番号が1でないすべての行を0に変更し、残りを保持するようにします。
私が使用する場合if
(つまり、条件付きステートメント)、すべてがOKです:
awk '{if($2!=1){print $1,"0"}else{print $0}}' file
PRO 1
GLN 0
ILE 0
THR 0
しかし、条件ブロックを使用すると、望ましくないことが起こります。
awk '$2!=1 {print $1,"0"} {print $0}' file
PRO 1
GLN 0
GLN 5.55112e-17
ILE 0
ILE -6.245e-17
THR 0
THR 5.55112e-17
何がおかしいのかわかります。
- このエラーを修正するにはどうすればよいですか?
- なぜこのエラーが発生するのですか?
- 条件付きステートメントと条件付きブロックの違いは何ですか?
awk '$2!=1?$2=0:"";1' file
ます。