cdm*_*cdm 0 linux bash text-processing
因此,如果我有这样的事情,我只想在“帐户已禁用:错误”时捕获或打印出帐户信息。
$ ipa user-find
---------------
2 users matched
---------------
User login: jpeterson
First name: john
Last name: peterson
Home directory: /home/jpeterson
Login shell: /bin/sh
UID: 855800007
GID: 855800007
Account disabled: False
User login: jsmith
First name: john
Last name: smith
Home directory: /home/jsmith
Login shell: /bin/sh
UID: 855800004
GID: 855800004
Account disabled: True
----------------------------
Number of entries returned 2
----------------------------
Run Code Online (Sandbox Code Playgroud)
预期输出为:
User login: jpeterson
First name: john
Last name: peterson
Home directory: /home/jpeterson
Login shell: /bin/sh
UID: 855800007
GID: 855800007
Account disabled: False
Run Code Online (Sandbox Code Playgroud)
有多个具有相同键或属性的帐户。
也许我不确定可以为此使用数组。除了尝试之外,我还没有尝试任何其他方法mapfile。当键“ Account disabled”的值等于“ False”时,将文件放入数组并打印出元素。但是我还没有。
我认为您将对此倒退。ipa应该有一种查询数据库的方法。我自己从未使用过它,但是我找到了包含以下示例的联机帮助页:
Run Code Online (Sandbox Code Playgroud)ipa user-find foo搜索在uid,名字,姓氏,全名等中带有“ foo”的所有用户。具有uid“ foobar”的用户将符合搜索条件。
Run Code Online (Sandbox Code Playgroud)ipa user-find foo --first bar与上一个示例相同,只是这次用户的名字必须完全是“ bar”。uid为“ foobar”且名字为“ bar”的用户将匹配搜索条件。
要获取更多详细信息,请尝试ipa help user-find。
您想要的命令可能看起来像其中之一:
ipa user-find --disabled False # Update: this one worked for OP
ipa user-find --account-disabled False
ipa user-find --enabled True
Run Code Online (Sandbox Code Playgroud)
也就是说,如果您想走文字处理路线,可以使用awk。