可以将 tacacs 文件的特定部分输出到列中的 Bash 脚本

可以将 tacacs 文件的特定部分输出到列中的 Bash 脚本

我正在尝试将 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 =,输出记住的用户名以及该行的第三个字段(应该是组名)。

我不熟悉该文件格式,并且不知道该文件中还可能存在哪些内容,因此我不能说这适用于问题中提供的任何其他数据。

相关内容