বলুন আমার কাছে একটি ফাইল রয়েছে:
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
।