它在建筑AWK中不起作用?

问题描述 投票:0回答:2
awk 'BEGIN {print "'"$QUERY_IMSI_END"'";
} 
{
split($0,a,";")
}
END {print a[3],a[2],a[1]}'

它不会打印由QUERY_IMSI_END组成的结果数组。如何制作合适的设计?

linux bash shell awk
2个回答
0
投票

awk从stdin读取它的输入。但是print将输出打印到stdout。

我想你想要这个:

echo "${QUERY_IMSI_END}" | awk -F';' '{print $3, $2, $1}'

请注意,您可以使用-F传递与默认字段分隔符不同的字段分隔符。明确的split()不是必需的。


0
投票
QUERY_IMSI_END="Some;thing;is;wrong"
awk -F";" '{print $3,$2,$1}' <(echo $QUERY_IMSI_END)

或者如果你想将该变量传递给awk。但请记住,awk从STDIN读取它需要读取缓冲区或句柄的位置。所以你必须传递一个文件或缓冲区句柄作为输入。

awk -v Variable=$QUERY_IMSI_END -F";" '{split(Variable,array,";"); print a[3],a[2],a[1]}' file1
© www.soinside.com 2019 - 2024. All rights reserved.