2015-01-13 2 views
-1

그물을 통해 검색했지만 awk 인쇄물 출력에 대한 해결책을 찾을 수 없습니다.awk에서 좋은 json 형식

:이 같은 출력을 생성 할

{"name": "Kimberly":"AMAZON", "address":"NY", "email":"[email protected]" }, 
    {"name": "Manny","address": "Nashville", "email": "[email protected]" }, 
    {"name": "Nina","address": "Mountain Hills", "email": "[email protected]" }, 

그러나 :

분명히,이 출력 결과
END { 
for (j = 1; j <= i; j++) 
{ print "{\"name\": \"%s\",\"address\": \"%s\", \"email\": \"%s\" },\n", 
name, address, email 
} 
    }' "$file" 

:

내 AWK (인쇄 END 코드)입니다
[ 
    {"name": "Kimberly":"AMAZON", "address":"NY", "email":"[email protected]"},     
    {"name":"Manny","address": "Nashville", "email": "[email protected]" }, 
    {"name": "Nina","address": "Mountain Hills", "email": "[email protected]" }] 

누구든지 도움을 주시기 바랍니다. 미리 감사드립니다.

+0

awk 코드가 출력물을 출력하고 있는지 확인하십시오. – JJoao

+0

나는 그런 인쇄물을 사용할 수 있는지조차 몰랐습니다. printf가 아닌 것으로 보입니다. –

+1

[크로스 게시 질문] http://askubuntu.com/q/573155/283843) –

답변

1

귀하의 질문에서 나는 당신이 단지 형식을 원한다고 가정합니다.

그래서 여기 당신이 그것을

END{print "[" 
    for(j=1;j<=i;j++) 
    print "{\"name\": \""name"\", \"address\":\""address"\", \"email\":\""email"\"}"(j==i?"]":",")} 

인쇄를 할 수있는 한 가지 방법 첫 번째 [
는 그 다음 마지막 라인이 때 ]를 인쇄 할 수 있는지 확인하는 삼항 연산자를 사용하여 라인을 인쇄, 그렇지 않으면 ,을 인쇄하십시오.