ler dois arquivos simultaniamente com while [RESOLVIDO]

1. ler dois arquivos simultaniamente com while [RESOLVIDO]

ruberval
satanghost

(usa Outra)

Enviado em 22/10/2014 - 18:43h

Boa noite a todos .
antes gostaria DE agradecer o companheirismo e ajuda de todos.. espero contribuir tb...
bem!!! fiz o seguinte script .

clear
echo Digite Nome do arquivo para criar os alias //variavel colocA nome no arquivo
read var


read -p "Digite os alias!!! : " -d'?' DIGITE // variavel pega tudo que eu escrever quando eu der shift+S ela cria a varivel var com este conteudo//

echo

echo "$DIGITE" >> $var.txt //conteudo da digite vai para o arquivo
echo


//tudo esta funcionando... mas quero acrescentar mais um arquivo a esta leitura e jopgar no echo //

while read line
do

echo -e alicreate '"'$line'"'',''"'20:90:00:'"' >> $var.log
done < $var.txt

no caso do echo ,

ele escreve no arquivo $var.log

se for o caso e so testar meu script

alicreate '"'$line'"'', alicreate aspas mais o arquivo lido..

no local do 20:90:00 eu queria colocar ou arquivo para ler

ficaria assim


alicreate '"' conteudo line '"'',''"conteudo segundo arquivo '"'

alguem pode me ajudar??/

grato

se for o caso pode testar meu script





  


2. Re: ler dois arquivos simultaniamente com while [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/10/2014 - 19:09h

Amigo, o que você gostaria de fazer com o script (eu não entendi direito):

#1 - Criar um script onde eu entro com um arquivo e n alias e no fim, estes alias serão criados com o mesmo conteúdo do arquivo especificado;

#2 - Criar um "mini-editor";

#3 - Nenhuma?


Desculpe não poder te ajudar agora, é porque eu fiquei com esta dúvida; assim que você responder eu posso te ajudar; valeu


3. Re: ler dois arquivos simultaniamente com while [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 22/10/2014 - 19:37h

Amigo , pq vc nao faz o mesmo comando após terminar o outro?

Algo assim:

echo $a >> arquivo1.txt ; echo $a >> arquivo2.txt

Espero ter ajudado

[]'s

T+


4. resp

ruberval
satanghost

(usa Outra)

Enviado em 22/10/2014 - 22:00h

seguinte
echo -e alicreate '"'$line'"'',''"'20:90:00:'"' >> $var.log

dentro do $line coloquei uma lista de nomes...
server1
server2
server3

o $var.log
vai icar assim

licreate '"'server1"'',''"'20:90:00:'"' onde esta o numero que eu queria ler outro rquio
contendo
20:90:00
30?88?00

no final pego o var.log

uso a seguinte linha
ssh usuario@ip sshpass senha -m $var.lo
essa linha configuro um switch brocade
em vez de fazer um a um faco mutos
zoning

grato



5. Re: ler dois arquivos simultaniamente com while [RESOLVIDO]

Marcos Paulo Ferreira
daemonio

(usa Slackware)

Enviado em 23/10/2014 - 12:03h

Os arquivos tem o mesmo número de linhas? Se tiver uma correspondência 1 para 1 fica fácil, isso é, lê a primeira linha dos dois arquivos simultaneamente, depois a segunda linha, terceira, etc.

OIFS=$IFS; IFS='@'
while read LINE_ARQ1 LINE_ARQ2
do
echo $LINE_ARQ1 $LINE_ARQ2
done < <(paste -d '@' arquivo1.txt aquivo2.txt)
IFS=$OIFS

salvamos o conteúdo de IFS e setamos ele pra arroba. O '@' será o separador entre as linhas do arquivo e ele não pode existir nos dois arquivos. O paste faz o papel de juntar a primeira linha de um arquivo com a primeira linha do segundo, etc.

Usando sua mesma sintaxe, pode-se usar o exec para tratar o segundo arquivo usando descritor:

#!/bin/bash

exec 3<'arquivo2.txt'

while read line
do
echo $line",,,,,,,,,,,,,,,"$(head -n 1 <&3)
done < 'arquivo1.txt'

a cada leitura do arquivo1.txt, o head irá ler uma linha do arquivo2.txt. Como estamos trabalhando com descritores, cada leitura nele irá incrementar o ponteiro de leitura, por isso cuidado com essa segunda abordagem (ex: se usar tail já não funciona porque o arquivo ja será lido todo na primeira passada)

SEria isso +/- isso?
t+


6. resp daemonio

ruberval
satanghost

(usa Outra)

Enviado em 23/10/2014 - 12:47h

bom dia a todos vou mostrar para voce como esta atualmente
so uma parte

estou usando este
Alias() {
clear
echo -n "Nome arquivo para Repositorio "
read aliasrep //nome do arquivo que vai ser criado
echo -n "Nome ALIAS "
read var nome para o alias pode nome serverve qq coisa
echo -n "WWN "
read WWn // aqui sao numeros 89:00:00:88:77:34:00 identificaçao da placa hba fibra mac address


echo alicreate '"'$var'"'',''"'$WWn'"' >> $aliasrep.txt

assim esta funcionando mas eu quero otimizar....

existe uma linha de comando no switch que ele mostra as WWN em sequencia....
o que eu quero e dar a linha de comando
copia normalmente isso ta ok

para otimizar fiz

#!/bin/bash

clear
echo Digite Nome do arquivo para criar os alias
read var


read -p "Digite os alias!!! : " -d'?' //aqui dou paste com os nomes obs quero sei que posso colocar mais um
echo para colocar as WWN 90:00:00:00:99

echo "$DIGITE" >> $var.txt
echo


while read line // mas como posso colocar aqui

do

echo -e alicreate '"'$line'"'',''"'20:90:00:'"' >> $var.log
done < $var.txt


7. agradecer

ruberval
satanghost

(usa Outra)

Enviado em 23/10/2014 - 13:23h


funcionou....
vou terminar o script e mais tarde postar
esse script fara zoning em switch de fibra... espero....
abraços
grato

#!/bin/bash

clear
echo Digite Nome do arquivo para criar os alias
read var


read -p "Digite os alias!!! : " -d'?' DIGITE

echo

echo "$DIGITE" >> $var.txt
echo

exec 3<'arquivo2.txt'

while read line

do
# echo $line",,,,,,,,,,,,,,,"$(head -n 1 <&3)

echo -e alicreate '"'$line'"'',''"'$(head -n 1 <&3)'"' >> $var.log
done < $var.txt







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts