gpt4 book ai didi

linux - 使用 $1 在 bash 脚本中使用 awk 提取一些文本

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:09 25 4
gpt4 key购买 nike

嗨,我正在尝试编写一个脚本,以便在使用 awk 从文本文件中满足表达式的情况下提取一行。

因此,如果我在 shell 中使用此命令,我会得到正确的输出,但在脚本上它不起作用,可能是因为 $1 被识别为用户在 shell 上给出的参数。

这是我的脚本:

#!/bin/bash
declare -a email=(test@test.com)
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

但是脚本发送的电子邮件只有这个正文:

su - zimbra -c 'cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -n -r' | awk '{if (>500){print }}

我该怎么做?

最佳答案

试试这个;

#!/bin/bash
a=$1
declare -a email=(test@test.com)
spam=`su - zimbra -c 'cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -n -r' | awk -v var="$a" '{if (a>500){print $2}}'`
for i in "${email[@]}"
do
echo "$spam"| /opt/zimbra/postfix/sbin/sendmail $i
done

关于linux - 使用 $1 在 bash 脚本中使用 awk 提取一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38655088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com