Dois arquivos transformados em um só
tipo ordena os arquivos com sort a principio, abre eles para leitura, ambos, a primeira linha do arquivo sera comparada com as linhas do outro arquivo ate chegar no final, e assim por diante, caso seja igual escreve em um outro arquivo, a partir dai rodando no while ate acabar o primeiro arquivo, acho que com isso voce consegue, algumas funcoes que vai precisar em perl eh: split para separar as linhas e open para abrir arquivos e os <> para os file descriptors... rapido voce faz isso, acho que em umas 20 linhas de codigo.
Dois arquivos transformados em um só
Citação:
Postado originalmente por Jim
Os campos que podem ser repetidos nos dois arquivos são um só?
Tipo.. o unico que pode repetir é o yyy? todos os yyy de cada arquivo sao exclusivos ou podem duplicar?
Fiz algu parecido em ShellScript, onde eu pegava a primeira coluna, pegava linha por linha e percorria outro arquivo de texto procurando um nome igual, ao encontrar juntava ambos noutro arquivo...
Jim,
Na verdade não existe campo unico. O campo YYY pode ter mais de um item no segundo arquivo.
Chega de dicas, que tal a solução?
Bem, não sei se o script abaixo vai resolver seu problema. Ao menos foi o que eu entendi quanto a sua necessidade.
Crie um shell com o nome unifica.sh e utilize o código abaixo.
Qualquer dúvida, mande uma mensagem.
[]s
Mameli
#!/bin/bash
# Unificacao de Arquivos
# by Mameli
if [ $# -lt 3 ]; then
clear
echo Sintaxe correta: unifica.sh \"arq1\" \"arq2\" \"arqunificado\"
echo Sendo o nome do arquivo com extensao e sem usar as aspas
echo .
exit
fi
if [ ! -f $1 ]; then
clear
echo Arquivo $1 nao encontrado
echo .
exit
fi
if [ ! -f $2 ]; then
clear
echo Arquivo $2 nao encontrado
echo .
exit
fi
while read Arq1;
do Col1=`echo $Arq1 | cut -d \; -f 1`
Col2=`echo $Arq1 | cut -d \; -f 2`
if grep $Col2 $2 >/dev/null; then
Col3=`grep $Col2 $2 | cut -d \; -f 2`
echo "$Col1;$Col2;$Col3" >> $3
else echo "$Col1;$Col2;">>$3
fi
done <$1
while read Arq2;
do Col1=`echo $Arq2 | cut -d \; -f 1`
Col2=`echo $Arq2 | cut -d \; -f 2`
if ! grep $Col2 $3 >/dev/null; then
echo ";$Col1;$Col2" >> $3
fi
done <$2
clear
echo Unificacao executada com sucesso !!!!!
echo Gerado arquivo: $3
importar 1 váriavel de um arquivo para
caros,gostaria que me ajudassem a impretar uma variavel por exemplo:
shell a.sh
MYVAR= ola
Shell b.sh
echo "$MYVAR"
ajudem me