Chamar um elemento do array no sed [RESOLVIDO]

13. Re: Chamar um elemento do array no sed

yuttttttt
yuttttttt

(usa Outra)

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?


  


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

Paulo
paulo1205

(usa Ubuntu)

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]

yuttttttt
yuttttttt

(usa Outra)

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]

yuttttttt
yuttttttt

(usa Outra)

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

Paulo
paulo1205

(usa Ubuntu)

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]

yuttttttt
yuttttttt

(usa Outra)

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]

yuttttttt
yuttttttt

(usa Outra)

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]

Paulo
paulo1205

(usa Ubuntu)

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]

yuttttttt
yuttttttt

(usa Outra)

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]

Paulo
paulo1205

(usa Ubuntu)

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

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



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts