2012-06-15 2 views
1

awk을 사용하여 특수 문자가 포함 된 배열의 내용을 인쇄하려고합니다. 아래는 "배열"을 인쇄하려고하는 awk 코드입니다. 여기서 "xx"는 배열의 색인입니다.awk 내 특수 문자 배열에 액세스

그러나 아래 코드는 배열의 내용을 인쇄하는 대신 "ARRAY1", "ARRAY2"...를 인쇄합니다. 어레이

awk 'BEGIN { xx=0; } 
{ 
    if (index($0, "ns:translate") > 0) { 
     print $0; 
     print "<Name xml:lang=\"sp\"> ARRAY" xx "</Name>"; 
     xx++; 
    } else { 
     print $0; 
    } 
}' $1 

내용은 다음

[\u8815S - Perce ~~~~~~~~~ ~~~~~~~~~ ~~\u573 
\u8915S - add ~~~~~~~~~ ~~~~~~~~~ ~~\u583 
\u8615S - sub ~~~~~~~~~ ~~~~~~~~~ ~~\u573 
\u8835S - mult ~~~~~~~~~ ~~~~~~~~~ ~~\u593 
\u8865S - div ~~~~~~~~~ ~~~~~~~~~ ~~\u993 
    .....] 

어레이는 근접 요소 (100)에 갖는다. 누구든지 awk 내의 특수 문자 배열에 액세스하는 데 도움을 줄 수 있습니까?

print "<Name xml:lang=\"sp\">" ARRAY[xx] "</Name>"; 

참조 :

답변

0

"ARRAY는"실제로 AWK의 배열이 아닌 것을 좋은 생각겠습니까 대신 당신이 전화하고있는 OS에 존재 awk에서? 글쎄, 여기에 awk 스크립트를 작성하는 방법이 도움이되는 경우에 "ARRAY"는 실제로 awk 배열이었습니다 :

awk '1 
index($0, "ns:translate") { 
    printf "<Name xml:lang=\"sp\">%s</Name>\n", ARRAY[xx++] 
}' $1