awkで簡単なスクリプトを作成しようとしていますが、私は奇妙な結果を得ています。マニュアルまたはWebのいずれかの手がかりを見つけることができません: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
なぜdoesnの」最後の行には最後に "Z"がありますか? gawkやawk(Mac)を使用しても問題ありません。
期待される結果は次のようになります。
redis.db0.keys:14Z
redis.db0.expires:4Z
redis.db0.avg_ttl:454226332Z
あなたの期待どおりの結果は?あなたは長いコマンドを貼り付けて、それが何であるかを何のヒントも与えずに何かを作り出すのかを尋ねることに注意してください。関連する詳細を含めるように質問を編集してください。 – fedorqui
また、 'split()'を2回使用しているので、別のFSを設定してそれらのうちの1つを削除することを検討してください。 – fedorqui
私の 'GNU Awk 4.1.3'は正常に結果を返します。多分あなたは悪い結末を持っていますか? 'cat -vet file'を実行して、何かがファイル内で壊れているかどうかを確認します。 – fedorqui