我正在尝试将 tacacs 文件的部分内容输出到月度报告中。
尝试过用 python 来做,但我的结果仍然有错误,所以我想我应该尝试看看在简单的 bash 脚本中是否有一个优雅的解决方案。
除了文件中的其他内容之外,我想要从文件中取出的位如下所示:
user = user1 {
member = group2
}
user = user2 {
member = group3
}
现在理想情况下,我想要的是属于 group2 的所有成员,输出到一列和另一列中,并具有他们所在组的名称。
我可以处理每月发送电子邮件的部分,这只是我遇到问题的输出。
有任何想法吗?
答案1
$ awk '/user =/ { u = $3 } /member =/ { print u, $3 }' file
user1 group2
user2 group3
如果我们找到匹配的行user =
,则记住用户名(这是从第三个空格分隔的字段中获取的)。当我们找到匹配的行时member =
,输出记住的用户名以及该行的第三个字段(应该是组名)。
我不熟悉该文件格式,并且不知道该文件中还可能存在哪些内容,因此我不能说这适用于问题中提供的任何其他数据。