shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: SED - como ir selecionando trechos de acordo com


From: Édnei Rodrigues
Subject: Re: [shell-script] Re: SED - como ir selecionando trechos de acordo com um padrão
Date: Wed, 21 Sep 2016 11:21:16 -0300

Senhores, maravilhosa solução.

Funcionou muito bem! Eu não sabia que podíamos usar expressões regulares en uma condição, como também, nem sabia da existência do || para indicar um início de uma função.
Agradeço imensamente a ajuda e vou ler o link indicado pelo Paulo.

Bom dia a todos.


Em 21 de set de 2016 10:37 AM, "address@hidden [shell-script]" <address@hidden> escreveu:
 

Olá Mestre Julio, vc tem razão, falta um espaço ali :) às vezes os emails da lista
vem com fonte monoespaçada e às vezes não, pra pegar esses detalhes sem fonte
monoespaçada é uma dificuldade. (sem contar que a indentação também vai pro espaço)
Abraços Paulo

On 21-09-2016 10:18, 'Julio C. Neves' address@hidden [shell-script] wrote:
>
>
> Ednei,
> [[ ... ]] é um cmd e como tal, deve ter um espaço em branco os separando de cada um dos operandos que estão no
> seu interior, pois eles são os parâmetros que vc está passando para o cmd test.
>
> No código que vc mandou me pareceu não haver espaços antes dos ]], em duas linhas.
>
> Abcs,
> Julio
> *@juliobash*
> *
> Próximos cursos de Shell*
> *Cidade LocalPeríodo*
> *
> ​
> **São Paulo 4Linux <https://www.4linux.com.br/curso/programacao-em-shell-script>05
> *-09/12*
> ***
> Dou treinamento de /Shell/em qualquer cidade.
> Para mais detalhes, me mande um e-mail <mailto:address@hidden>.
>
>
> Em 21 de setembro de 2016 09:48, Édnei Rodrigues ednei.felipe.rodrigues@gmail.com
> <mailto:ednei.felipe.address@hidden> [shell-script] <address@hidden.br
> <mailto:shell-script@yahoogrupos.com.br>> escreveu:
>
> __
>
>
> Obrigado pela sugestão!
>
> É bem interessante a proposta.
> Eu testei a fórmula e houve um erro:
>
> -rwxr-xr-x 1 rluser radiantlogic 249 Sep 21 09:33 status_connector.sh
>
> [root@app1ssosite006h bin]# ./status_connector.sh
>
> ./status_connector.sh: line 6: unexpected token `newline', conditional binary operator expected
>
> ./status_connector.sh: line 6: syntax error near `{'
>
> ./status_connector.sh: line 6: ` {'
>
> [root@app1ssosite006h bin]# cat status_connector.sh
>
> #!/bin/bash
>
> cat listas_conectores.txt | while read linha;
>
> do
>
> [[ "$linha" =~ ^$]] ||
>
> {
>
> if [[ "$linha" =~ ^\.]]; then
>
> top_nome="${linha#.}"
>
> continue
>
> else
>
> echo "topology.sh printConnectorStatus $top_nome ${linha#*:}"
>
> fi;}
>
> done
>
> [root@app1ssosite006h bin]#
>
> [root@app1ssosite006h bin]# bash --version
>
> bash --version
>
> GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
>
> Copyright (C) 2011 Free Software Foundation, Inc.
>
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
> <http://gnu.org/licenses/gpl.html>>
>
>
> O que significa aquele || ?
>
>
> Em 20 de set de 2016 8:50 AM, "'Julio C. Neves' address@hidden <mailto:address@hidden>
> [shell-script]" <address@hidden.br <mailto:shell-script@yahoogrupos.com.br>> escreveu:
>
> __
>
>
> Se vc estiver usando Bourne Shell, o sh (mas não é esse sh do Linux, é o du Unix), ele não reconhece
> função declarada com:
> funtion funcao
> {
> ...
> }
> Reconhece somente com a sintaxe
> funcao ()
> {
> ...
> }
>
> Após declarar uma função, é a prática muito boa fazer:
> export -f funcao
>
>
> Em 19 de set de 2016 17:33, "address@hidden <mailto:address@hidden.br> [shell-script]"
> <address@hidden.br <mailto:shell-script@yahoogrupos.com.br>> escreveu:
>
> __
>
>
> Olá Itamar, valeu o feedback :)
> É verdade, vc tem razão, não pensei na portabilidade.
> Se for um shell com menos recursos acho que a solução seria
> isolar o bloco com sed e pegar as informações com grep, ou usar
> awk direto que faz o serviço dos dois.
> Um tempo atrás teve uma dúvida na lista sobre um shell que não reconhecia função,
> devia ser um dos shells do busybox.
> Esse é um exercício e tanto, fazer os scripts compatíveis com bash 3 ou 2 pra trás.
> Abraços Paulo
>
> On 19-09-2016 15:36, address@hidden <mailto:address@hidden> [shell-script] wrote:
> >
> >
> > A solução do Paulo é perfeita.
> >
> > Simples e objetiva e atende o que deseja pela sua descrição.
> >
> > Para o que vc deseja o Sed acredito não ter suporte para executar comandos assim, e em puro bash
> vai direto ao
> > ponto.
> >
> > A única ressalva que faço é verificar a versão do Shell que está usando, pois o Paulo usou
> recursos recentes e
> > dependendo da empresa, essa atualização pode ser negligenciada, e os recursos sugeridos podem
> não funcionar da
> > forma como estão, mas é possível trocar por uso de "test", "sed" ou "grep".
> >
> > E além de tudo usando esse recursos built-in's, em epecial do Bash há um ganho de performance
> sem comparação.
> >
> > []'s
> > Itamar
> >
> >
> > ----------------------------------------------------------
> > Enviado por: address@hidden <mailto:address@hidden>
> > ----------------------------------------------------------
>
>
>
> ----------------------------------------------------------
> Enviado por: "Julio C. Neves" <address@hidden>
> ----------------------------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]