私のLinuxコンピュータには次のファイルがあります。
dn: cn=333-MMMM-PPPP_DET1,ou=groups,ou=functional,o=company
member: cn=aaa,ou=users,ou=accounts,o=company
member: cn=bbb,ou=users,ou=accounts,o=company
member: cn=ccc,ou=users,ou=accounts,o=company
member: cn=ddd,ou=users,ou=accounts,o=company
member: cn=eee,ou=users,ou=accounts,o=company
dn: cn=333-MMMM-PPPP_DET2,ou=groups,ou=functional,o=company
dn: cn=333-MMMM-PPPP_DET3,ou=groups,ou=functional,o=company
member: cn=aaa,ou=users,ou=accounts,o=company
member: cn=ggg,ou=users,ou=accounts,o=company
追加のアプリケーションからインポートするために、単純な形式のcsvに変換したいと思います。
aaa;333-MMMM-PPPP_DET1
bbb;333-MMMM-PPPP_DET1
ccc;333-MMMM-PPPP_DET1
ddd;333-MMMM-PPPP_DET1
eee;333-MMMM-PPPP_DET1
aaa;333-MMMM-PPPP_DET3
ggg;333-MMMM-PPPP_DET3
私は以下を試しました。
awk '1;/^$/{exit}
->最初のハングまですべての行を表示します(計画は印刷し、別のファイルに移動して削除することです。ループから) - >最初の行をインポートして
awk 'FNR == 1 {suffix=$0} {print $0suffix}'
次の行に入れます。
この問題に対する解決策が見つかりませんでした。どんな提案がありますか?
ベストアンサー1
$ awk -F'[,=]' -v OFS=',' '/^dn/{dn=$2} /^me/{print $2, dn}' file
aaa,333-MMMM-PPPP_DET1
bbb,333-MMMM-PPPP_DET1
ccc,333-MMMM-PPPP_DET1
ddd,333-MMMM-PPPP_DET1
eee,333-MMMM-PPPP_DET1
aaa,333-MMMM-PPPP_DET3
ggg,333-MMMM-PPPP_DET3