파일이 있다고 가정 해보십시오.
PRO 1
GLN 5.55112e-17
ILE -6.245e-17
THR 5.55112e-17
두 번째 열의 숫자가 1이 아닌 모든 줄을 0으로 변경하고 나머지를 유지하기를 원합니다.
if
조건문을 사용하면 모든 것이 정상입니다.
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
.