【发布时间】:2017-05-01 11:49:49
【问题描述】:
dzinfo 给我这样的输出格式;
User: x0000001
Forced into restricted environment: No
Role Name Avail Restricted Env
--------------- ----- --------------
login/Corp_All Yes None
_Example-Role-- Yes _Example-Role--
ALL_Servers-Win ALL_Servers-Win
/US_All /US_All
Domain_GLOBAL-Ro Yes Domain_GLOBAL-Ro
le-CORE_Group-AL le-CORE_Group-AL
L-MacOS/Domain_ L-MacOS/Domain_
GLOBAL GLOBAL
Effective rights:
Password login
Non password login
Allow normal shell
PAM Application Avail Source Roles
--------------- ----- --------------------
* Yes login/US_All
Privileged commands:
Name Avail Command Source Roles
--------------- ----- -------------------- --------------------
CORP_GLOBAL-Com Yes /usr/bin/getfacl CORP_GLOBAL-Role-COR
mand-CORE_SVR_I E_SVR_INFRA_ALL-LNX/
NFRA_ALL-V042-S CORP_GLOBAL
00042/CORP_GLOB
AL
CORP_GLOBAL-Com Yes /usr/bin/dzdo -l CORP_GLOBAL-Role-COR
mand-CORE_SVR_I E_SVR_INFRA_ALL-LNX/
NFRA_ALL-V042-S CORP_GLOBAL
00048/CORP_GLOB
AL
CORP_GLOBAL-Com Yes /bin/cp temp_auth CORP_GLOBAL-Role-COR
mand-CORE_SVR_I /home/sudocfg/author E_SVR_INFRA_ALL-LNX/
NFRA_ALL-V042-S ized_keys CORP_GLOBAL
00085/CORP_GLOB
AL
什么工具是这样格式化报告的最佳选择?我怎样才能匹配/组合列/行并将其格式化为以下内容?
User: x0000001
Forced into restricted environment: No
Role Name Avail Restricted Env
--------------- ----- --------------
login/Corp_All Yes None
_Example-Role--ALL_Servers-Win/US_All Yes _Example-Role--ALL_Servers-Win/US_All
Domain_GLOBAL-Role-CORE_Group-ALL-MacOS/Domain_GLOBAL Yes Domain_GLOBAL-Role-CORE_Group-ALL-MacOS/Domain_GLOBAL
Effective rights:
Password login
Non password login
Allow normal shell
PAM Application Avail Source Roles
--------------- ----- --------------------
* Yes login/US_All
Privileged commands:
Name Avail Command Source Roles
--------------- ----- -------------------- --------------------
CORP_GLOBAL-Command-CORE_SVR_INFRA_ALL-V042-S00042/CORP_GLOBAL Yes /usr/bin/getfacl CORP_GLOBAL-Role-CORE_SVR_INFRA_ALL-LNX/CORP_GLOBAL
CORP_GLOBAL-Command-CORE_SVR_INFRA_ALL-V042-S00048/CORP_GLOBAL Yes /usr/bin/dzdo -l CORP_GLOBAL-Role-CORE_SVR_INFRA_ALL-LNX/CORP_GLOBAL
CORP_GLOBAL-Command-CORE_SVR_INFRA_ALL-V042-S00085/CORP_GLOBAL Yes /bin/cp temp_auth /home/sudocfg/authorized_keys CORP_GLOBAL-Role-CORE_SVR_INFRA_ALL-LNX/CORP_GLOBAL
每一列的文字可以变化很大,所以我希望自动调整宽度。
我可以处理单行,但对于这样的报告?我什至不知道从哪里开始。
【问题讨论】:
-
您可能想通过一个较小的示例寻求帮助,然后您可以开发和增强自己以应用于更大的问题。没有多少人愿意通读所有这些文本,试图找出要寻找的模式以及如何处理它们。
-
即使有人可能会考虑回答这个问题,这表明没有努力解决它,这对他们来说太大了,无法阅读。 :(
-
欢迎来到本站!请参阅how to ask 了解更多关于读者可能在问题中寻找的内容。就个人而言,我会使用
awk,因为我很熟悉它。看起来您想从以Avail=Yes开头的行块中展开列。您可以找到Avail和Yes,开始累积,每当您到达下一个Yes时打印,然后当您看到空行或文件结尾时打印最后一个块(awk 中的END {})。