|
From: | Julio C. Neves |
Subject: | Re: [shell-script] string shell |
Date: | Thu, 21 Nov 2013 18:59:50 +0000 |
Bruno,Não entendi o que queres, mas irei explica alguns detalhes e talvez isso o ajude.Declarar variáveis#Sem array ou array singular¹$ var1="abcde"$ echo $var1 #ou ${var[0]}#Array$ var1=(a b c d) #Observe que o separador é um espaço em branco " "$ echo ${var1[1]} # 0=a, 1=b...¹ Quero dizer que mesmo com essa sintaxe o valor também pode ser lido na chave 0.E quando separador é "#" ou ";"?Exemplo didático:parser(){#Substitui "#" ou ";" por " "(espaço)var="${1//[#|;]/ }"#retorna: a b cecho $var}var3="feijao3#arroz3#macarrao3" #No email: var3=(feijao#arroz#macarrao)var4=(feijao4 arroz4 macarrao4) #Arrayvar5="feijao5;arroz5;macarrao5" #No email: var5=("feijao;arroz;macarrao")tmp_var1=($(parser "${var3}")) #Executa a função parser passando var3 como argumento e com o retorno cria o arraytmp_var2=($(parser "${var5}"))
echo ${var4[0]} #imprime valor da chave 0.feijao4
echo ${var4[@]} #imprime todos os valores contido no arrayfeijao4 arroz4 macarrao4
var4[0]="${tmp_var1[2]} ${var4[0]}" #Substitui o valor contido na chave 0.var4=(${var4[@]}) #Recria o array var4 expandindo valores atuais de var4.
echo ${var4[0]}macarrao3
echo ${var4[@]}macarrao3 feijao4 arroz4 macarrao4
#Dessa forma colocamos o campo 3(chave 2) de var3 no campo1(chave 0 ) de var4.No shell bash desconheço qualquer tipo métodos para estrutura de dados como lista.append('hello'), insert(), extend(), etc.
#! Enilton Angelim
## F13 Tecnologia2013/11/21 Bruno Viana <address@hidden>
Opa,
Obrigado a todos !!!
E agora fiquei com outras duvidas:
Quando a string é assim
var1=(abcde)
ou
var2=(a b c d e)
Fica bem tranquilo, mas e quando elas são:
var3=(feijao#arroz#macarrao)
ou
var4=(feijao arroz macarrao)
ouvar3=(feijao;arroz;macarrao)
E para essas var3 4 5 quisesse o primeiro campo de uma na outra e terceiro, e que esses campos poderiam mudar o tamanho, tipo uma hora foi "feijao", mas poderia ser "carne"
Ficaria como ?
Em Quarta-feira, 20 de Novembro de 2013 20:29, Julio C. Neves <address@hidden> escreveu:
Ô Enilton, sabendo isso tudo de shell, diga pro gordinho e unha de fome do seu chefe o seguinte:- Erlon, seu fio de uma égua, o Julio Neves falou para vc me dar aumento. Gaste menos com a cerveja e capriche no meu salário!Na 10ª edição do meu livro já esta previsto um exemplo muito parecido com esse, veja:$ var=(zero um dois três quatro)$ echo \${var[{0..4}]}${var[0]} ${var[1]} ${var[2]} ${var[3]} ${var[4]}$ eval echo \${var[{0..4}]}zero um dois três quatroou seja, não precisa daquele monte de contrabarras que vc usou, basta uma antes do cifrão para o shell não tentar resolver a variável.Se conseguir o aumento, pague a cerveja para mim qdo eu for aí em Fortaleza. ;)Abcs,Julio@juliobashFacebook? Neither that the cow cough...;)Em 20 de novembro de 2013 18:05, Enilton Angelim <address@hidden> escreveu:var=(a b c d)#e...#se você for curioso e doido que nem eu...#executeeval echo \${var\[{0..3}\]\}
#! Enilton Angelim
## F13 Tecnologia2013/11/20 Enilton Angelim <address@hidden>var=(a b c d) ou var[0]="a" ...echo ${var[0]} #imprime "a"...#Ler os índicesfor i in ${!var[@]}doecho "Chave: $i Valor: ${var[$i]}"done....#${!var[@]} : Retorna todos os índices do array
# Enilton Angelim
# Analista de Suporte Jr.2013/11/20 Bruno Viana <address@hidden>Senhores,Em uma conversa com um colega que desenvolve em php e que agora esta fazendo umas coisas em shell ele me perguntou como tratar strings.Ou seja ele recebe um vetor que tem as possições e queria ler a possição xAi falei para ele que poderia usar o "cut" usando o delimitador conhecido com o "-d" e pegar a possição com o "-f", só que me veio a duvida se teria uma fução para tratar isso de uma forma "mais elegante" em shell.Existe alguma diferente de cut, awk ou sed em shell ?Atenciosamente,
[Prev in Thread] Current Thread [Next in Thread]
- string shell, Bruno Viana, 2013/11/20
- Re: [shell-script] string shell, Enilton Angelim, 2013/11/20
- Re: [shell-script] string shell, Enilton Angelim, 2013/11/20
- Re: [shell-script] string shell, Enilton Angelim, 2013/11/20
- Re: [shell-script] string shell, Julio C. Neves, 2013/11/20
- Enc: [shell-script] string shell, Bruno Viana, 2013/11/21
- Re: [shell-script] string shell, Enilton Angelim, 2013/11/21
- Re: [shell-script] string shell, Julio C. Neves <=
Re: [shell-script] string shell, Julio C. Neves, 2013/11/20
- Re: [shell-script] string shell, Enilton Angelim, 2013/11/21
- Re: [shell-script] string shell, Enilton Angelim, 2013/11/21
- Re: [shell-script] string shell, Julio C. Neves, 2013/11/21
- Prev by Date: Re: [shell-script] string shell
- Next by Date: Re: [shell-script] fim de um loop devido ao exit do avconv
- Previous by thread: Re: [shell-script] string shell
- Next by thread: Re: [shell-script] string shell
- Index(es):