awk减少了系统依赖性

bob*_*bob 4 c bash awk

如果我没有弄错的话,awk会根据操作系统语言解析一个数字(例如,echo "1,2" | awk '{printf("%f\n",$1)}'在英语系统中会被解释为1,而在逗号将整数与小数部分分开的系统中会被解释为1.2).

我不知道C printf是否也这样做,所以我添加了C标签.

我想修改上一个命令,以便它返回相同的值(1.2),无论使用何种系统.

Dav*_*ave 8

欢迎的丑陋的语言环境.要解决您的问题,请先将语言环境设置为C语言环境.

export LC_NUMERIC=C
echo "1,2" | awk '...your code...'
Run Code Online (Sandbox Code Playgroud)

要关闭其他依赖于语言环境的tomfoolery,您可以

export LC_ALL=C
Run Code Online (Sandbox Code Playgroud)