awk에서 간단한 스크립트를 작성하려고하는데 이상한 결과가 발생하고 이유를 이해할 수 없습니다. 수동 또는 웹에서 단서를 찾을 수 없습니다 : 'gawk의 문자열 연결로 인해 예기치 않은 결과가 발생합니다.
redis.db0.keys:14Z
redis.db0.expires:4Z
Zedis.db0.avg_ttl:454226332
되지 않는 이유는 무엇 : 결과
# 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")} }'
이의 것 : 여기
하면 입력 파일의 마지막 줄에는 끝에 "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 -vet file'을 실행하여 파일에서 무언가가 깨 졌는지 확인하십시오. – fedorqui