2
我寫了一些awk腳本來處理一些數據,發現結果出乎意料。如何嚴格比較awk中的兩個長數字串
我找到了根本原因是下面的字符串比較是不正確
echo "59558711052462309110012 59558711052462313120012"|awk '{print $1;print $2;print ($1==$2)?"eq":"ne"}'
結果是
59558711052462309110012
59558711052462313120012
eq
我猜的原因是,AWK把兩個數字串數字,並切斷它們進行比較。 我的問題是,如何嚴格比較awk中的兩個字符串。
沒有意識到這一點。 –
所以awk會做數字比較,如果我沒有連接操作數與空字符串和切斷操作數,如果長度超過? – ningyuwhut
沒有修改,awk會試圖找出是否需要數字或字符串比較。只要雙方「看起來像」(通過awks推理)數字,比較將是數字,否則它將是字符串。 idk什麼'如果長度超過'意味着切斷操作數。 –