1

コマンドからすべての無効なアカウントを表示しようとしています:

ipa user-find --all

コマンドの基本的な出力は、次のようになります。

dn: uid=johnd,cn=users,cn=accounts,dc=mydomain,dc=com
User login: johnd
First Name: John
Last Name: Doe
Full Name: John Doe
Home directory: /home/johnd
GECOS field: John Doe
Login shell: /bin/bash
Kerberos principal: johnd@DOMAIN.COM
Email address: johnd@domain.com
UID: 501
GID: 1022
Account disabled: True
Password: True
Member of groups: ipausers
Kerberos keys available: False
ipauniqueid: 75732ha-482x82l-13xa-d820-0120xbba142
objectclass: ipaobject, krbticketpolicyaux, etc.

私が実行した場合:

ipa user-find --all | grep "Account disabled: True"

私は手に入れます:

  Account disabled: True
  Account disabled: True
  Account disabled: True
  Account disabled: True

すべての無効なアカウント用。一致するすべてのフィールドを表示する方法はあり"Account disabled: True"ますか?

4

2 に答える 2

2

そして、すべての属性の順序および/または存在に依存しない awk ソリューション [そして、ldif に関する私の知識を考えると、DN: は常に最初の行にあると安全に想定できます]:

awk 'BEGIN{RS="\n\n";FS="\n"}/Account disabled: True/{print $1}'
于 2016-02-11T20:45:08.550 に答える
1
ipa-user-find --all | grep "Account disabled: True" -B12 -A5

-Bは何行前、-Aは何行後です。おそらくもっとエレガントな解決策がありますが、これは今のところうまくいきます。

無効になっている各アカウントのフルネームだけが必要な場合は、結果を別の grep コマンドにパイプするだけです

于 2016-02-11T20:32:21.330 に答える