bash - 循环但输出被引用的行
问题描述
如果该帐户有任何人分配了 sendAs 权限,我有我编写的脚本来遍历电子邮件帐户并输出。
#!/bin/bash
while IFS= read -r line
do
zmprov -l ga "$line" | grep zimbraACE >> accountsout.txt
done < accounts.txt
该脚本有效但输出但输出不能帮助我确定每个条目或条目集属于哪些帐户。
zimbraACE: 12bf9714-9c6d-46ce-b15d-c127bfffae usr viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all -viewFreeBusy
zimbraACE: 538c5495-8e50-43cb-9131-e893695bd5 usr sendAs
zimbraACE: 23beb905-67c0-4e0d-9e85-405de5babd usr sendAs
我希望让它在属性 a la 之前输出行引用:
zimbrasucks@imbra.org
zimbraACE: 12bf9714-9c6d-46ce-b15d-c127bfffae usr viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all viewFreeBusy
zimbraACE: 00000000-0000-0000-0000-0000000000 all -viewFreeBusy
dontusethisproduct@zimbra.org
zimbraACE: 538c5495-8e50-43cb-9131-e893695bd5 usr sendAs
zimbraACE: 23beb905-67c0-4e0d-9e85-405de5babd usr sendAs
我知道我必须将每次迭代的输出作为第二个变量捕获,然后在每个循环中输出这两个变量,但我什至不确定从 bash 开始的位置。
解决方案
将输出保存grep
在变量中。然后检查是否grep
成功,并在打印变量之前打印电子邮件。
while IFS= read -r line
do
temp=$(zmprov -l ga "$line" | grep zimbraACE)
if [ $? -eq 0 ]
then
echo "$line"
echo "$temp"
fi
done < accounts.txt > accountsout.txt
推荐阅读
- php - 在 WooCommerce 中为自定义字段使用 wc_get_orders() orderby 参数
- azure - 无法使用部署在 Azure 中的 Neo4j VM
- javascript - 滚动 REACT 时获取 API 数据
- python - 用数据框中的新值替换唯一值,熊猫?
- flutter - 颤振单选按钮不会重建
- bash - “回声退出|”的目的是什么 在“回声退出 | sqlplus 用户/pass@ora_instance @file.sql”?
- javascript - 如何避免排版中的换行
- java - 以正确格式显示 localDateTime 的最佳方法是什么?
- nopcommerce - NopCommerce PayPalStandart PDTHandler 期望 GET 而 PayPal 使用 POST
- java - 在草图软件中对空 DB .. 的操作