1
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 のいくつかの場所でバックスラッシュが欠落していると思います。どうすればこれを修正できますか?

4

2 に答える 2

1

サラティが指摘したように、あなたの問題は引用されていない$.

コマンドを分割すると、見つけやすくなる場合があります。

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'、二重引用符で囲むと正しく展開されることに注意してください。

于 2012-12-11T08:42:02.923 に答える
0

$以下のように記号をエスケープします。

\$awk '{ \$(NF-1)....

于 2012-12-11T08:29:52.167 に答える