for INSTANCE in $INSTANCES
do
ssh weblogic@${SERVER} "egrep \"^$SEARCHHOUR1:$SEARCHMIN1.*DEBUG.*LONG QUERY.* ms.\$|^$SEARCHHOUR2:$SEARCHMIN2.*DEBUG.*LONG QUERY.* ms.\$\" vgprod1/mw.log.$INSTANCE | awk '{ $(NF-1)>=10000 }' "
done
错误:
NF-1: command not found
awk: cmd. line:1: { >=10000 }
awk: cmd. line:1: ^ syntax error
我在Unix服务器上执行时遇到上述错误。我想我在AWK的某些地方缺少反斜杠。我该如何解决这个问题?
答案 0 :(得分:1)
正如 sarathi 所述,您的问题是一个不带引号的$
。
如果你拆分命令可能更容易发现:
pattern="^$SEARCHHOUR1:$SEARCHMIN1.*DEBUG.*LONG QUERY.* ms.\$|^$SEARCHHOUR2:$SEARCHMIN2.*DEBUG.*LONG QUERY.* ms.\$"
for INSTANCE in $INSTANCES
do
ssh weblogic@${SERVER} "egrep '$pattern' vgprod1/mw.log.$INSTANCE | awk '\$(NF-1) > 1000'"
done
另请注意,egrep '$pattern'
用双引号括起来时会正确展开。
答案 1 :(得分:0)
退出$
符号,如下所示:
\$
中的 awk '{ \$(NF-1)....