ソースファイルと参照ファイルから行を抽出して結果ファイルに追加するには?

ソースファイルと参照ファイルから行を抽出して結果ファイルに追加するには?

ソースと参照ファイルを過度に単純化しました。

ソースファイルs.txt:

dn: cn=user1, cn=users,dc=domain
changetype: modify
replace: userpassword
userpassword: {SSHA}$%^&

dn: cn=user2, cn=users,dc=domain
changetype: modify
replace: userpassword
userpassword: {SSHA}$%^&dffd

dn: cn=user3, cn=users,dc=domain
changetype: modify
replace: userpassword
userpassword: {SSHA}$%^&dfd32

リファレンスドキュメントr.txt:

dn: cn=user2, cn=users,dc=domain

参照レコードdnファイルを使用してソースファイルのuser2'dn行を抽出し、後で3行を抽出して結果ファイルに追加するスクリプトが必要ですuser_chg.ldif

user_chg.ldif:

dn: cn=user2, cn=users,dc=domain
changetype: modify
replace: userpassword
userpassword: {SSHA}$%^&dffd

ベストアンサー1

どうですか(あなたのgrepバージョンでその-Aオプションを受け入れる場合):

grep -A3 -f r.txt s.txt

おすすめ記事