0

私は次のものを持っています:

ssh $DOMAIN -l root "grep "'$EMAIL@$DOMAIN'" /var/log/maillog | grep retr= | grep -v retr=0 | awk '{ print "'$11'" }' | cut -d, -f1 | cut -d= -f2 | awk '{ t += $1 } END { print "'total: '", t, "' bytes transferred over POP3'"}'"

このコマンドを実行すると、次の出力が得られます。

stdin: tty ではありません

awk: { t += blah@email.com } END { print total: , t, POP3 経由で転送されたバイト数}

awk: ^ 式の無効な文字 '@'

$1 の @ が原因で問題が発生しているように見えawk '{ t += $1 }ますが、これをエスケープするいくつかの異なる方法を試してみましたが、うまくいきませんでした。アドバイスをいただければ幸いです。

4

1 に答える 1

1

引用符が一致しないため、これはあなたが実行したコマンドではないと思います(余分な があり"ます)。実際に実行したコマンドが「$1」を展開したように聞こえるため、awk は最初のフィールドから読み取るのではなく、文字通りの電子メール アドレスを解釈します。

最後の部分は次のようになります。

awk '{ t += $1 } END { print "total: ", t, " bytes transferred over POP3"}'
于 2013-03-25T15:58:08.067 に答える