Pular para o conteúdo

Chamar um elemento do array no sed [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02

13. Re: Chamar um elemento do array no sed

Enviado em 14/02/2017 - 12:50h

paulo1205 escreveu:

Na primeira postagem ele colocou uma barra só antes do s, que realmente poderia ser inválido, mas, na segunda, ele colocou duas barras (“[i]/${arg[0]}/”), o que não seria errado.
errei na digitação kkkkk consertei la, mas é da maneira da segunda mesmo. não sei porque não está indo. Acho que é como o Mauriciodez ali falou, deve ser algum erro na composição da variavel, se uma palavra tiver "palavra " o sed irá procurar com espaço?

Responder tópico

14. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 12:59h

Caro yutttttt,

Espero que você entenda que fica difícil ajudar efetivamente com as poucas informações que você mostrou.

Não ficou claro, por exemplo, se dá algum erro, ou se o comando só deixa de fazer o você gostaria. Se dá erro, seria bom você dizer qual a mensagem.

Você nem ao menos deu uma amostra de possíveis valores das variáveis. Não dá para dizer se a sintaxe do comando está certa se não se sabe como as variáveis estão sendo expandidas.

Qual foi o comando de echo que você chamou, e o que ele produziu?

15. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 13:15h

paulo1205 escreveu:

Caro yutttttt,

Espero que você entenda que fica difícil ajudar efetivamente com as poucas informações que você mostrou.

Não ficou claro, por exemplo, se dá algum erro, ou se o comando só deixa de fazer o você gostaria. Se dá erro, seria bom você dizer qual a mensagem.

Você nem ao menos deu uma amostra de possíveis valores das variáveis. Não dá para dizer se a sintaxe do comando está certa se não se sabe como as variáveis estão sendo expandidas.

Qual foi o comando de echo que você chamou, e o que ele produziu?
echo foi na variavel, ele me retorna a palavra, se tiver algum espaço é no final pois no incio não aparece. Não me retorna erro algum, apenas a saida do sed com o arquivo sem está com as palavras modificadas.

Como faço para ignorar os espaços nas palavras?


16. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 13:42h

Acho que sei o que está errado, no array está acontecendo isso:

echo "${array[0]}"
echo "${array[1]}"
echo "${array[2]}"
echo "${array[3]}"
me retorna:

palavra0
palavra1
palavra2
palavra3

porem se faço isso, apenas para verificar sem tem espaços no final da palavra:

echo "${array[0]}aqui"
echo "${array[1]}aqui"
echo "${array[2]}aqui"
echo "${array[3]}aqui"
me retorna:

palavra0aqui
aquialavra1
palavra2aqui
aquialavra3

Esperava receber isso:

palavra0aqui
palavra1aqui
palavra2aqui
palavra3aqui

o que seria isso? espaços?

17. Re: Chamar um elemento do array no sed

Enviado em 14/02/2017 - 14:02h

Ah, agora estão vindo informações úteis!

Por acaso seu arquivo de origem foi gerado no Windows? Porque o Windows usa uma representação de fim de linha diferente do UNIX, com dois caracteres (CR+LF, ou "\r\n"), em lugar de um só (apenas LF, ou "\n").

Como você está fazendo para montar seu array?

18. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 14:12h

paulo1205 escreveu:

Ah, agora estão vindo informações úteis!

Por acaso seu arquivo de origem foi gerado no Windows? Porque o Windows usa uma representação de fim de linha diferente do UNIX, com dois caracteres (CR+LF, ou "\r\n"), em lugar de um só (apenas LF, ou "\n").

Como você está fazendo para montar seu array?
Não, tudo criado no linux. O problema eu achei aqui, mas ainda não consegui resolver, estou usando o curl para pegar o html, e jogando numa variavel, e depois fazendo isso, mas o problema está ao retirar as tags hmtl, algo está dando errado ai:

linha=$( sed -e 's/<[^>]*>//g' <<< $var_curl )

array=(${linha//:/ })

19. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 14:33h

paulo1205 escreveu:

yuttttttt escreveu:

Não, tudo criado no linux. O problema eu achei aqui, mas ainda não consegui resolver, estou usando o curl para pegar o html, e jogando numa variavel, e depois fazendo isso, mas o problema está ao retirar as tags hmtl, algo está dando errado ai:

linha=$( sed -e 's/<[^>]*>//g' <<< $var_curl )

array=(${linha//:/ })
Troque a primeira linha acima pelo seguinte.

linha=$( sed -e 's/<[^>]*>//g' -e 's/\r//g' <<< $var_curl ) 


funcionou, o que esse 's/\r//g' fez?

20. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 14:48h

Muitos sites na Internet também usam CR+LF como sinalização de término de linha. Quando você chama o curl, ele entrega para você exatamente o que o site lhe envia.

Na string de comando do sed que eu lhe passei, eu faço com que ele suprima o caráter CR (ou "\r") do par CR+LF usado pelo site, deixando apenas o LF, que é o terminador natural do UNIX.

21. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 14:53h

paulo1205 escreveu:

Muitos sites na Internet também usam CR+LF como sinalização de término de linha. Quando você chama o curl, ele entrega para você exatamente o que o site lhe envia.

Na string de comando do sed que eu lhe passei, eu faço com que ele suprima o caráter CR (ou "\r") do par CR+LF usado pelo site, deixando apenas o LF, que é o terminador natural do UNIX.
entendi, e se caso não houver CR? irá dar algum erro, ou o sed apenas ignora e continua normalmente?

22. Re: Chamar um elemento do array no sed [RESOLVIDO]

Enviado em 14/02/2017 - 15:06h

Se não houver CR, essa substituição simplesmente deixa os dados intactos.
01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder