这可能是由于不同版本的AWK之间在语法和实现方面的差异所致。解决方法是确保在执行AWK命令时使用正确的AWK版本或者在命令中使用可移植的语法。
例如,以下AWK命令在Ubuntu 14.04 LTS上会产生不同的结果:
awk '{a[$1]+=$2;} END{for(i in a)print i,a[i];}' input_file
在Ubuntu 14.04 LTS中,输出将按键排序,而在Ubuntu 16.04 LTS中,输出将按键的插入顺序排序。此外,在Ubuntu 14.04 LTS中,键和值之间使用TAB分隔符,而在Ubuntu 16.04 LTS中,使用空格分隔符。
为了避免这种差异,建议使用以下命令:
awk '{a[$1]+=$2;} END{for(i in a)print i"\t"a[i];}' input_file
这使用TAB分隔键和值,并且在不同的Ubuntu版本之间应该产生相同的结果。