Hallo, ich versuche, ein Skript zu schreiben, um eine Zeile zu extrahieren, wenn ein Ausdruck aus einer Textdatei mit awk erfüllt ist.
Also, wenn ich diesen Befehl in der Shell verwende, habe ich richtig ausgegeben, aber auf das Skript funktioniert es vielleicht nicht, weil $ 1 wie das Argument vom Benutzer auf Shell erkannt wird.
, dass mein Skript ist:
#!/bin/bash
declare -a email=([email protected])
spam=`su - zimbra -c 'cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -n -r' | awk '{if ($1>500){print $2}}'`
for i in "${email[@]}"
do
echo "$spam"| /opt/zimbra/postfix/sbin/sendmail $i
done
aber die E-Mail durch das Skript gesendet hat nur diesen Körper:
su - zimbra -c 'cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -n -r' | awk '{if (>500){print }}
Wie kann ich das tun?
Bitte geben Sie einen überprüfbaren Abtastwerteingang und erwartete Ausgabe – Inian