Édnei Rodrigues ednei.felipe.rodrigues@gmail.com [shell-script]
2016-09-16 17:12:11 UTC
Boa tarde pessoal.
Eu estava fazendo um script onde irá executar um outro script de acordo com
as informações de um certo arquivo:
.CADIRTEWS
Capture Connector: object=user_password,dv=so_sicredi_ad
Apply Connector:
object=tews_sicrediUsuario_merge,dv=so_caidmtews_userpassword
Transformation: ADUserPassword_To_CAIDMTewsPassword
Capture Connector: object=entidades_merge,dv=so_sicredi_oid_entities
Apply Connector:
object=tews_SicrediOrganization,dv=so_caidmtews_entidades_org
Transformation: OIDEntitiesOU_To_CADIRTEWSEntidadesOU
.CADIRIDS
Components for topology: CADIRIDS
Capture Connector: object=SicrediNumberID,dv=so_sicredi_cadir_ids
Apply Connector: object=SicrediNumberID,dv=so_sicredi_oldap_ids
Transformation: CADIRIds_To_OLDAPIds
Apply Connector: object=SicrediNumberID,dv=so_sicredi_oid_ids
Transformation: CADIRIds_To_OIDIds
.CADIRENTIDADESOU
Capture Connector:
object=SicrediOrganization_merge,dv=so_sicredi_cadir_entidades
Apply Connector: object=entidades_merge,dv=so_sicredi_oid_entities
Transformation: CADIREntidadesOU_To_OIDEntitiesOU
Capture Connector:
object=SicrediOrganization_merge_deletion,dv=so_sicredi_cadir_entidades
Apply Connector: object=entidades_merge,dv=so_sicredi_oldap_entities
Transformation: CADIREntidadesOU_To_OLDAPEntitiesOUDelete
Transformation: CADIREntidadesOU_To_OIDEntitiesOUDelete
Transformation: CADIREntidadesOU_To_OLDAPEntitiesOU
Como podem ver, o inÃcio de cada trecho há um '.' e o final há uma linha
vazia. Minha intenção é selecionar cada trecho, processá-lo e passar para o
próximo trecho. Não há necessidade de criar um loop, somente eu tiver uma
forma de usar o sed e manipular os trechos de acordo com a sua ordem. Sei
que eu posso tratar com outros métodos, mas eu fiquei curioso como o SED
poderia manipular.
O que eu já tentei:
[***@app1ssosite006h bin]# sed -n '1,/^\./p' listas_conectores.txt
/opt/radiantone/vds/r1syncsvcs/bin
.CADIRTEWS
[***@app1ssosite006h bin]# sed -n '2,/^\./p' listas_conectores.txt
.CADIRTEWS
Capture Connector: object=user_password,dv=so_sicredi_ad
Apply Connector:
object=tews_sicrediUsuario_merge,dv=so_caidmtews_userpassword
Transformation: ADUserPassword_To_CAIDMTewsPassword
Capture Connector: object=entidades_merge,dv=so_sicredi_oid_entities
Apply Connector:
object=tews_SicrediOrganization,dv=so_caidmtews_entidades_org
Transformation: OIDEntitiesOU_To_CADIRTEWSEntidadesOU
.CADIRIDS
[***@app1ssosite006h bin]#
[***@app1ssosite006h bin]# sed -n '/^\./{p;1q}' listas_conectores.txt
.CADIRTEWS
.CADIRIDS
.CADIRENTIDADESOU
.CADIRSEGURANCA
.CADIRDISTRIBUICAO
.CADIRUSERS
.CADIRENTIDADESGROUP
.CADIRTOVDSTOCADIR
.COMPUTE
Obrigado!
Eu estava fazendo um script onde irá executar um outro script de acordo com
as informações de um certo arquivo:
.CADIRTEWS
Capture Connector: object=user_password,dv=so_sicredi_ad
Apply Connector:
object=tews_sicrediUsuario_merge,dv=so_caidmtews_userpassword
Transformation: ADUserPassword_To_CAIDMTewsPassword
Capture Connector: object=entidades_merge,dv=so_sicredi_oid_entities
Apply Connector:
object=tews_SicrediOrganization,dv=so_caidmtews_entidades_org
Transformation: OIDEntitiesOU_To_CADIRTEWSEntidadesOU
.CADIRIDS
Components for topology: CADIRIDS
Capture Connector: object=SicrediNumberID,dv=so_sicredi_cadir_ids
Apply Connector: object=SicrediNumberID,dv=so_sicredi_oldap_ids
Transformation: CADIRIds_To_OLDAPIds
Apply Connector: object=SicrediNumberID,dv=so_sicredi_oid_ids
Transformation: CADIRIds_To_OIDIds
.CADIRENTIDADESOU
Capture Connector:
object=SicrediOrganization_merge,dv=so_sicredi_cadir_entidades
Apply Connector: object=entidades_merge,dv=so_sicredi_oid_entities
Transformation: CADIREntidadesOU_To_OIDEntitiesOU
Capture Connector:
object=SicrediOrganization_merge_deletion,dv=so_sicredi_cadir_entidades
Apply Connector: object=entidades_merge,dv=so_sicredi_oldap_entities
Transformation: CADIREntidadesOU_To_OLDAPEntitiesOUDelete
Transformation: CADIREntidadesOU_To_OIDEntitiesOUDelete
Transformation: CADIREntidadesOU_To_OLDAPEntitiesOU
Como podem ver, o inÃcio de cada trecho há um '.' e o final há uma linha
vazia. Minha intenção é selecionar cada trecho, processá-lo e passar para o
próximo trecho. Não há necessidade de criar um loop, somente eu tiver uma
forma de usar o sed e manipular os trechos de acordo com a sua ordem. Sei
que eu posso tratar com outros métodos, mas eu fiquei curioso como o SED
poderia manipular.
O que eu já tentei:
[***@app1ssosite006h bin]# sed -n '1,/^\./p' listas_conectores.txt
/opt/radiantone/vds/r1syncsvcs/bin
.CADIRTEWS
[***@app1ssosite006h bin]# sed -n '2,/^\./p' listas_conectores.txt
.CADIRTEWS
Capture Connector: object=user_password,dv=so_sicredi_ad
Apply Connector:
object=tews_sicrediUsuario_merge,dv=so_caidmtews_userpassword
Transformation: ADUserPassword_To_CAIDMTewsPassword
Capture Connector: object=entidades_merge,dv=so_sicredi_oid_entities
Apply Connector:
object=tews_SicrediOrganization,dv=so_caidmtews_entidades_org
Transformation: OIDEntitiesOU_To_CADIRTEWSEntidadesOU
.CADIRIDS
[***@app1ssosite006h bin]#
[***@app1ssosite006h bin]# sed -n '/^\./{p;1q}' listas_conectores.txt
.CADIRTEWS
.CADIRIDS
.CADIRENTIDADESOU
.CADIRSEGURANCA
.CADIRDISTRIBUICAO
.CADIRUSERS
.CADIRENTIDADESGROUP
.CADIRTOVDSTOCADIR
.COMPUTE
Obrigado!