使用awk在子字符串函数中传递变量值

时间:2016-11-29 12:35:00

标签: linux awk substr

我正在使用awk substr函数来计算出现的次数。

例如:

cat amexe1_e1_dev_Vaibhav_SLM_6_slmlog.txt | /opt/apigee4/contrib/jq '.destinations[0].message.value' | sed -e 's|"\\||g' |tr -d ' '| sed -e 's|n"||g' | sed -e 's|[\]||g' | awk '{ print substr( $v, 1258 ) }' | grep -o ':'| wc -l

当我执行下面的命令时,我得到了预期的计数,即1,这是实际结果。

现在不是直接传递1258,而是将其包装在变量中,然后像下面那样使用它

POS=1258;
cat amexe1_e1_dev_Vaibhav_SLM_6_slmlog.txt | /opt/apigee4/contrib/jq '.destinations[0].message.value' | sed -e 's|"\\||g' |tr -d ' '| sed -e 's|n"||g' | sed -e 's|[\]||g' | awk '{ print substr( $v, $POS ) }' | grep -o ':'| wc -l

当在命令中使用时,我得到结果为28,这不是预期的,因为预期的数量是1。

所以我能得出的结论是POS变量没有正确填充,它应该将其值替换为1258.

所以问题是:如何在命令中调用POS变量?

0 个答案:

没有答案