我想使用awk
打印包含特殊字符的数组的内容。下面是awk
代码,我正在尝试打印数组" ARRAY"在哪里" xx"是数组的索引。
但下面的代码打印" 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
中的特殊字符数组吗?
答案 0 :(得分:0)
这听起来像你想要的:
print "<Name xml:lang=\"sp\">" ARRAY[xx] "</Name>";
参考:http://www.gnu.org/software/gawk/manual/gawk.html#Reference-to-Elements
答案 1 :(得分:0)
“ARRAY”实际上不是一个awk数组,而是存在于你从awk调用的操作系统中吗?好吧,如果它有助于你如何写你的awk脚本以上IF“ARRAY”实际上是一个awk数组:
awk '1
index($0, "ns:translate") {
printf "<Name xml:lang=\"sp\">%s</Name>\n", ARRAY[xx++]
}' $1