Olá pessoal, obrigado pelo interesse.
Eu não respondi antes porque eu trabalhei 15 dias direto e, assim, peguei esse
findi para descansar.
Tentarei explanar melhor qual é a intenção aqui.
Eu tenho um script chamado topology.sh que ao usar como parâmetro
printConnectorStatus, tu podes passar a
topologia e o conector. Essa é sintaxe:
/topology.sh printConnectorStatus CADIRTEWS
object=tews_sicrediUsuario_merge,dv=so_caidmtews_userpassword
Eu já pensei no código e já coloquei num txt todos as topologias e conectores
existentes. Para cada topologia,
eu coloquei um '.' no início para identificá-lo. Para caracterizar o fim da
lista de comandos, eu inseri uma
linha em branco.
Minha idéia é ler esse arquivo, montar o comando acima e executar ( o retorno
será um STARTED ou DOWN ) para
cada topologia e seus conectores.
Por isso, eu estava tentando montar um SED para pegar a uma Topologia de vez e
ir executando seus respectivos
conectores. Logo, pensando numa forma eficiente, seria algo assim:
Comando SED 'pegar nome depois do .' > TOPOLOGIA_NOME
Comando SED 'PEGAR proxima linha depois do primeiro ponto até a proxima linha
branca' > Arquivo temporário ou
Variável
LOOP leitura da saida acima
/.topology.sh printConnectorStatus TOPOLOGIA_NOME Var_loop
Peço desculpas por não ter sido mais rápido na resposta, mas eu estava cansado
mesmo.
Att,
Édnei Rodrigues
Em 17 de set de 2016 2:02 PM, "Rodrigo Cunha address@hidden
<mailto:address@hidden>
[shell-script]" <address@hidden <mailto:address@hidden>> escreveu:
__
Ednei,crie uma amostra pra galera entender qual é a sua finalidade,
coloque em anexo um arquivo a ser
processado (INPUT) e mais dois; um contendo um arquivo com o processamento
desejado e um contendo um
arquivo com o erro que vc encontrou.
Lógicamente, crie os arquivos com uma pequena amostra, vai ser mais simples
de entender o que vc quer fazer.
Abração!
Em 17 de setembro de 2016 09:45, 'Julio C. Neves' address@hidden
<mailto:address@hidden>
[shell-script] <address@hidden <mailto:address@hidden>> escreveu:
__
Itamar, não havia respondido nada, pq minhas dúvidas foram exatamente
iguais às suas.
Em 17 de set de 2016 09:33, "address@hidden <mailto:address@hidden>
[shell-script]"
<address@hidden <mailto:address@hidden>> escreveu:
__
Caro Édnei
Fiquei com algumas dúvidas sobre o que deseja e sobre o arquivo de
exemplo:
1 - A cada trecho que começa por uma linha iniciado por um ponto (
como vc descreveu ), seguida de
letras maúsculas até o final da linha ( minha dedução cujo regex seria
"/\.[A-Z]+$/" ) e que
também poderia ser linhas iniciadas por ".CADIR", e outra por
".COMPUTE".
2 - O final de cada bloco há uma linha vazia, todavia no exemplo
que passou não chegou contendo.
Isso pode ser um problema pela maneira como chegou via o fórum, por
isso pergunto.
Se for isso a segunda parte da regex poderia ser limitada assim
/^$/ ou /^[[:blank:]]*$/ se houver
a possibilidade de conter espaços ou tabulações.
3 - O último comando que lista apenas os "títulos" não deveria ser:
$ sed -n '/^\./p' listas_conectores.txt
Do jeito que passou comigo listou apenas um, e não todos.
4 - Para cada trecho desejado vc quer fazer um processamento
distinto dentro do sed.
Se é isso um filtro generalista de começo não serve, como a regex
"/\.[A-Z]+$/" que sugeri a pouco
e talvez o uso por limite inicial por número da linha como vc usou
pode ser ineficaz, caso o
conteúdo seja variável.
Para isso vc pode montar os blocos definindo explicitamente o
começo e o final, por exemplo:
$ sed -n '/\.CADIRIDS/,/^$/ {
*** comandos para esse trecho ***
p
}' listas_conectores.txt
ou se precisar limitar o fim de outra forma com o uso do ponto
inicial:
$ sed -n '/\.CADIRIDS/,/^\./ {
/\./ { /\.CADIRIDS/!q; }
*** comandos para esse trecho ***
p
}' listas_conectores.txt
Não sei se fui claro em minhas dúvidas e se o que sugeri lhe ajuda.
De toda forma, seria como abordaria usando o sed.
[]'s
Itamar
--
Atenciosamente,
Rodrigo da Silva Cunha
--------------------------------------------------------------------------------------------------------------
Enviado por: =?UTF-8?Q?=C3=89dnei_Rodrigues?= <address@hidden>
--------------------------------------------------------------------------------------------------------------