gawk中的字符串连接会产生意外结果

时间:2017-04-13 13:02:20

标签: awk gawk

我正在尝试用awk写一个简单的脚本,但是我得到了奇怪的结果而无法理解为什么。在手册或网页上找不到任何线索:

这是输入文件:

# Keyspace
db0:keys=14,expires=4,avg_ttl=454226332

这是命令

gawk -F : '/^db/ { split($2, keys, ","); for(i in keys) { k = gensub("=", ":", "g", keys[i]); print ("redis." $1 "." k "Z")} }'

结果如下:

redis.db0.keys:14Z
redis.db0.expires:4Z
Zedis.db0.avg_ttl:454226332

为什么最后一行最后没有“Z”?如果我使用gawk或awk(Mac)无所谓。

预期结果将是:

redis.db0.keys:14Z
redis.db0.expires:4Z
redis.db0.avg_ttl:454226332Z

1 个答案:

答案 0 :(得分:1)

您的输入文件在每行末尾都有一个控件-M,使用cat -v查看它,dos2unix或类似内容将其删除。

这有FOT是FAR最常见的问题我们得到的问题....希望有一些“运行cat -v file并寻找^M s之前发布”我们可以施加的要求问题!