我想在awk中編寫一個簡單的腳本,但是我得到了奇怪的結果,無法理解爲什麼。無法找到在手冊或網頁的任何線索:gawk中的字符串串聯會產生意想不到的結果
這裏的輸入文件:
# 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
您的預期成果是什麼?請注意,你正在粘貼一個長長的命令,並問爲什麼它會產生一些東西,而沒有給出它所要做的事情。請[編輯]您的問題以包含相關的詳細信息。 – fedorqui
也是,因爲你使用'split()'兩次,考慮設置一個不同的FS去除其中的一個。 – fedorqui
我的'GNU Awk 4.1.3'正常返回預期的結果。也許你有一些不好的結局?執行'cat -vevet file'來查看文件中是否有內容被破壞。 – fedorqui