我正在使用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变量?