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
埃德·莫顿

您的输入文件在每一行的末尾都有一个 control-M,用于cat -v查看它dos2unix或类似地删除它们。

这一定是 FAR 最常见的问题,我们得到的问题是……希望有一些“在发布之前运行cat -v file并寻找^Ms”的要求,我们可以强加给问题!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章