awk 數值和字符串比較問題


在linux終端輸入如下命令:

> echo "10025350462330387914 10025350462330388480" | awk '{if ($1 == $2) print $1 " = " $2; else print "NO"}'

得到的輸出是:

10025350462330387914 = 10025350462330388480

 

這是因為:awk 自動將 $1,$2轉化成了數值型,已經越界,所以相等了。

修正方法:

> echo "10025350462330387914 10025350462330388480" | awk '{if ($1"" == $2"") print $1 " = " $2; else print "NO"}'

這樣就顯式地轉化成了字符串。

輸出:

NO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM