ARRAY [RESOLVIDO]

1. ARRAY [RESOLVIDO]

edson silva
lugh

(usa Debian)

Enviado em 21/05/2012 - 15:43h

Boa tarde, VOL.

Eu preciso de ajuda com um array , eu tenho o seguinte arquivo:

joao 768 Usuario joao - Equipe WEB - 40174082645 - 24355 /bin/ksh 28 Feb 2011
maria 1011 maria - maria de joao - maria.joao@localhost.com - Brazil /bin/ksh 5 Apr 2011
pedro 1 Usuario [*****]- Task N-j022837-T001 - 25011 /usr/bin/sh 2011


Basicamente estou separando em campos e jogando para um array os valores (ao menos estou tentando), o problema esta no 3 campo:" Usuario joao - Equipe WEB - 401-05-274082698 - 24355 "

Para gerar o array estou usando o seguinte comando (com erro):

comTs=(`cat arquivo | cut -d " " -f3- | cut -d"/" -f 1 | sed 's/.*/"&"/' | tr '\n' ' '`)

echo "${comTs["1"]}"

RESULTADO
Usuario

Eu preciso fazer com o array imprima a linha inteira, alguem consegue me ajudar?

RESULTADO ESPERADO:

Usuario joao - Equipe WEB - 401-05-274082698 - 24355

Obrigado.


  


2. Re: ARRAY [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 21/05/2012 - 16:54h

Vc inseriu um "cut -d/ -f1" para delimitar o arquivo e captar somente o que está antes da "/".
Se vc fizer desta forma, da certo:

cat arquivo | cut -d" " -f3- | sed 's/.*/"&"/g' | tr '\n' ' '



3. Re: ARRAY [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 21/05/2012 - 18:27h

alexandregms escreveu:

Vc inseriu um "cut -d/ -f1" para delimitar o arquivo e captar somente o que está antes da "/".
Se vc fizer desta forma, da certo:

cat arquivo | cut -d" " -f3- | sed 's/.*/"&"/g' | tr '\n' ' '


Testando aqui com o exemplo dele, retornou:


"Usuario joao - Equipe WEB - 40174082645 - 24355 /bin/ksh 28 Feb 2011" "maria - maria de joao - maria.joao@localhost.com - Brazil /bin/ksh 5 Apr 2011" "Usuario [*****]- Task N-j022837-T001 - 25011 /usr/bin/sh 2011"


Tudo na mesma linha ? [editado] Claro , gerou um array e os separadores são " " [/fim editado]

Só para eu entender rsrs.

Por que está montando um array ?


4. Re: ARRAY [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 31/05/2012 - 00:05h

Imprimir todos os dados do array:

echo ${comTs[@]}

resultado:

"Usuario joao - Equipe WEB - 40174082645 - 24355 " "maria - maria de joao - maria.joao@localhost.com - Brazil " "Usuario [*****]- Task N-j022837-T001 - 25011 "


Não é isso que querias?



5. Re: ARRAY [RESOLVIDO]

edson silva
lugh

(usa Debian)

Enviado em 11/06/2012 - 11:33h

AprendiNoLinux escreveu:

alexandregms escreveu:

Vc inseriu um "cut -d/ -f1" para delimitar o arquivo e captar somente o que está antes da "/".
Se vc fizer desta forma, da certo:

cat arquivo | cut -d" " -f3- | sed 's/.*/"&"/g' | tr '\n' ' '


Testando aqui com o exemplo dele, retornou:


"Usuario joao - Equipe WEB - 40174082645 - 24355 /bin/ksh 28 Feb 2011" "maria - maria de joao - maria.joao@localhost.com - Brazil /bin/ksh 5 Apr 2011" "Usuario [*****]- Task N-j022837-T001 - 25011 /usr/bin/sh 2011"


Tudo na mesma linha ? [editado] Claro , gerou um array e os separadores são " " [/fim editado]

Só para eu entender rsrs.

Por que está montando um array ?



Oi amigo,

Então estava usando como estudo em um script que precisava criar, não queria tratar o resultado repetidas vezes dentro do for.

Tratava tudo uma unica vez e jogava para um array e com o for só montava a saida..

Eu resolvi o problema com o seguinte comando.

comTs=(`cat $1 | cut -d " " -f3- | cut -d"/" -f 1 | sed 's/.*/"&"/' | sed 's/ /,/g'`)

E muito obrigado pelas repostas.




6. Re: ARRAY [RESOLVIDO]

edson silva
lugh

(usa Debian)

Enviado em 11/06/2012 - 11:35h

Pessoal ,

Muito obrigado a todos que me deram as dicas deste array, a comunidade sempre ajudando...
Obrigado a todos mais uma vez e espero contribuir com a VOL quando assim for necessario.

Abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts