特定の属性を含むldifファイルのユーザーを取得しようとしています。
入力ファイルは次のようになります。
# entry-id: 2
dn: uid=xxx,ou=xx,cn=xx,o=xx,c=xx,o=xx
uid: xxx
cn: Paul
SUKsoft: Windows
SUKsoft: Linux
...
# entry-id: 3
dn: uid=yyy,ou=yy,cn=yy,o=yy,c=yy,o=yy
uid: yy
cn: Jones
SUKsoft: Windows
...
# entry-id: 3
dn: uid=zzz,ou=zz,cn=zz,o=zz,c=zz,o=zz
uid: zz
cn: John
SUKsoft: Linux
...
# entry-id: 4
dn: uid=www,ou=ww,cn=ww,o=ww,c=ww,o=ww
uid: ww
cn: John2
...
# entry-id: 5
dn: uid=mmm,ou=mm,cn=mm,o=mm,c=mm,o=mm
uid: mm
cn: John3
SUKsoft: Linux
...
結果ファイルは、SUKsoft: Windows 属性を持つユーザーをフィルタリングする必要があります。
uid|cn
xx|Paul
yy|Jones
私はLinuxシェルbashの経験があまりありません。最初にファイルを繰り返し読み取ってsuksoftとuid属性を取得し、再度再処理して、最終的なファイルを作成し、以下のSUKsoftでuidだけを取得しようとしています:
cat 1.txt | while read line
do
egrep -w '^uid|SUKsoft' $line > output.txt
done
出力は次のようになります。
uid: xxx
SUKsoft: Windows
SUKsoft: Linux
uid: yy
SUKsoft: Windows
uid: zz
SUKsoft: Linux
uid: ww
uid: mm
SUKsoft: Linux
ここで、ファイルを処理して UID 行を取得したいと思います。SUKsoft: Windows が 1 つあり、それらを最終ファイルにコピーします。
ここで私を助けてくれませんか?
ありがとう
よろしく