Use
while read LINE; do
sed -n -e "/^$LINE\$/,/^$/p" s.txt
done < r.txt
Eu tenho a fonte simplificada & arquivos de referência.
arquivo de origem, 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
arquivo de referência, r.txt
:
dn: cn=user2, cn=users,dc=domain
Eu quero um script para usar o arquivo dn de registro de referência para extrair a linha user2'dn do arquivo de origem e 3 linhas depois, adicionar a um arquivo de resultado user_chg.ldif
.
user_chg.ldif
:
dn: cn=user2, cn=users,dc=domain
changetype: modify
replace: userpassword
userpassword: {SSHA}$%^&dffd
Que tal (se a sua versão grep
permitir a opção -A
):
grep -A3 -f r.txt s.txt
Obrigado pela resposta de RalfFriedl para minha pergunta. Eu tenho uma pequena pergunta diferente e não consigo descobrir. arquivo de origem s.txt:
dn: cn = task, cn = Grupos, dc = domínio changetype: modificar adicionar: uniquemember uniquemember: cn = user1, cn = usuários, dc = domínio
dn: cn = task, cn = Grupos, dc = domínio changetype: modificar adicionar: uniquemember uniquemember: cn = user9, cn = usuários, dc = domínio
dn: cn = task, cn = Grupos, dc = domínio changetype: modificar adicionar: uniquemember uniquemember: cn = user10, cn = usuários, dc = domínio
arquivo de referência r.txt: uniquemember: cn = user9, cn = usuários, dc = domain uniquemember: cn = user8, cn = usuários, dc = domínio
Eu quero um script para usar o arquivo uniquemember do registro de referência para extrair a linha do usuário9 do arquivo de origem e as 3 linhas acima, adicionar ao arquivo de resultado usermember_add.ldif.
dn: cn = task, cn = Grupos, dc = domínio changetype: modificar adicionar: uniquemember uniquemember: cn = user9, cn = usuários, dc = domínio
Tags shell-script