कहो कि मेरे पास एक फाइल है:
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
।