1

を使用して、特殊文字を含む配列の内容を出力したいと考えていますawk。以下は、配列のインデックスである配列をawk印刷しようとしているコードです。ARRAYxx

ただし、以下のコードは、配列の内容を出力する代わりに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か?

4

2 に答える 2

0

「ARRAY」は実際にはawk配列ではなく、awkを呼び出しているOSに存在するというのは良い推測でしょうか。「ARRAY」が実際にawk配列だった場合、上記のawkスクリプトを作成する方法がわかります。

awk '1
index($0, "ns:translate") {
   printf "<Name xml:lang=\"sp\">%s</Name>\n", ARRAY[xx++]
}' $1
于 2012-10-17T23:53:20.890 に答える
0

あなたが望むように聞こえます:

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

参照: http://www.gnu.org/software/gawk/manual/gawk.html#Reference-to-Elements

于 2012-06-15T08:13:45.243 に答える