Looping com tres variaveis e dois arquivos [RESOLVIDO]

1. Looping com tres variaveis e dois arquivos [RESOLVIDO]

Geize
geize

(usa Lubuntu)

Enviado em 24/10/2019 - 16:44h

Ola Pessoal,

Eu tenho um arquivo com tres colunas..

Ex:
CFNF01000012.1 59165 59365
COMF01000025.1 59180 59380
COMG01000023.1 63184 63384


Preciso escrever um script que a cada vez que execute um comando coloque esses valores.

Exemple:
do
efetch ... coluna1....coluna2...coluna3
done


Eu "chamo" a variavel antes ou dentro do loop?

Obrigada!


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/10/2019 - 16:59h

geize escreveu:

Ola Marcelo,
Muito obrigada!
Ajudou muito.

Por nada Geize.
Precisando . . . . Estou por aqui...
Uma outra sugestão:
Se é necessário "rodar" o script com vários arquivos de entrada, é mais interessante
fazer uma busca dos "input_files", e rodar o script com o resultado da mesma.
Isso evita, executar o script para cada input file.
Exemplo:
#!/bin/bash
#Supondo que em "Dir_INPUTFILES" tenha somente os arquivos de entrada.
output_file=$1;
for input_file in $(ls -1 Dir_INPUTFILES/*.txt);do
echo -e "Resultados do Arquivo: ${input_file}\n" >> ${output_file}
while IFS=$'\t' read -r ID start stop;do
echo Coluna1:${ID} Coluna2:${start} Coluna3:${stop} >> ${output_file}
done<${input_file}
done

Se não for "pedir muito",
Poderia escolher a "MELHOR Resposta", dessa forma sou pontuado,
o que incentiva a continuar colaborando/compartilhando conhecimentos.....

Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver

3. Re: Looping com tres variaveis e dois arquivos

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/10/2019 - 18:46h

geize escreveu:

Ola Pessoal,

Eu tenho um arquivo com três colunas..

Ex:
CFNF01000012.1 59165 59365
COMF01000025.1 59180 59380
COMG01000023.1 63184 63384


Preciso escrever um script que a cada vez que execute um comando coloque esses valores.

Exemple:
do
efetch ... coluna1....coluna2...coluna3
done

Eu "chamo" a variável antes ou dentro do loop?
Obrigada!

Boa noite Geize.
Não entendi exatamente o que você quer.
Segue Exemplo, para ler "linha a linha" e "pegar" cada campo/coluna como uma variável:
while IFS=$'\t' read -r col1 col2 col3;do
echo Coluna1:${col1} Coluna2:${col2} Coluna3:${col3};
done<arquivo

O separador de campos do seu arquivo é a tabulação, logo, IFS=$'\t'
Note que as variáveis são atribuídas e chamadas dentro do looping...
Atribuídas: read -r col1 col2 col3;
Chamadas: echo Coluna1:${col1} Coluna2:${col2} Coluna3:${col3};

Importante: echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


4. Re: Looping com tres variaveis e dois arquivos [RESOLVIDO]

Geize
geize

(usa Lubuntu)

Enviado em 25/10/2019 - 09:00h

Ola Marcelo,

Obrigada pela sua sugestao.

Escrevi algo parecido (veja abaixo,por favor). Mas, nao tinha colocado as variaveis dentro "{ }" e definido o separador.
ID: Coluna_1; start = coluna_2 ....e stop= Coluna_3


Ultima pergunta. Serao varios arquivos que eu preciso "rodar" com esse sccript. No python, tenho a opcao de usar "argv.sys[1]" e colocar diferentes input files.
EX: python myscript.py <input> <output>

Como posso colocar o input file como uma variavel para nao precisar trocar todas as vezes o nome do arquivo dentro do script.

Obrigada.

while read ID start stop;
do
efetch -db nuccore -id $ID -format fasta -seq_start $start -seq_stop $stop;

done < samonellaEnterica_test.txt


5. Re: Looping com tres variaveis e dois arquivos

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/10/2019 - 03:39h

geize escreveu:

Ola Marcelo,

Obrigada pela sua sugestao.

Escrevi algo parecido (veja abaixo,por favor). Mas, nao tinha colocado as variaveis dentro "{ }" e definido o separador.
ID: Coluna_1; start = coluna_2 ....e stop= Coluna_3


Ultima pergunta.
Serao varios arquivos que eu preciso "rodar" com esse sccript.
No python, tenho a opcao de usar "argv.sys[1]" e colocar diferentes input files.
EX: python myscript.py <input> <output>

Como posso colocar o input file como uma variavel para nao precisar trocar todas as vezes o nome do arquivo dentro do script.
Obrigada.

while read ID start stop; do
efetch -db nuccore -id $ID -format fasta -seq_start $start -seq_stop $stop;
done < samonellaEnterica_test.txt


Bom dia Geise.
As variáveis dentro de chaves, e apenas para protege-las.
A definição do IFS, é muito importante.
Qto a sua "última pergunta", pode sim.
Veja mais detalhes em:
https://aurelio.net/shell/canivete/#variaveis
Exemplo:
#!/bin/bash
#$1 é o argumento 1.
input_file=$1;
output_file=$2;
while IFS=$'\t' read -r ID start stop;do
echo Coluna1:${ID} Coluna2:${start} Coluna3:${stop} >> ${output_file}
done<${input_file}
Para executar o script faça;
./Script.sh argumento1 argumento2
Importante: echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


6. Re: Looping com tres variaveis e dois arquivos [RESOLVIDO]

Geize
geize

(usa Lubuntu)

Enviado em 26/10/2019 - 14:48h

Ola Marcelo,


Muito obrigada!

Ajudou muito.








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts