2016-02-11 4 views
1

Я пытаюсь отобразить все отключенные учетные записи с помощью команды:Grep вывод команды и отображать все строки, которые соответствуют строки

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: [email protected] 
Email address: [email protected] 
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"?

ответ

2

и раствор AWK, который не зависит от порядка и/или наличия всех атрибутов [и учитывая мой знание ldif. Я с уверенностью буду считать, что DN: всегда находится на первой линии]:

awk 'BEGIN{RS="\n\n";FS="\n"}/Account disabled: True/{print $1}' 
+0

Это работает лучше всего. Благодаря! –

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

-B это сколько строк до и -A, сколько после. Вероятно, это более элегантное решение, но сейчас это работает.

Если вы хотите только полное имя каждого счета инвалида, только трубу ваших результатов в другую команду Grep

+0

Спасибо. Это будет хорошо. –