shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] [OT] Concatenar aquivos


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] [OT] Concatenar aquivos
Date: Mon, 10 Apr 2006 23:07:31 -0300

Acho que entendi

Vamos pegar os codigos dos seus clientes + data a partir do cut e usar
sort | uniq para deixar apenas um registro por codigo. Se eu pegar os
caracteres das posições 1 a 11 eu pego todos os 'nomes' por assim
dizer sem o caracter sequencial

$ ls | cut -c1-11 | sort | uniq
00220060403
00220060406
00320060405
00620060327
00720060327
00920060405
01120060403
01220060405
01320060327
01620060405

Agora o que vc pode fazer é o seguinte:

$ for parte in $(ls *csv | cut -c1-11 | sort | uniq)
do echo "Quem comeca por $parte sao $(ls -X ${parte}[0-9].csv)"
done

O for pega todos as primeiras partes que te interessam. Agora vamos
usar isso como argumento para o cat e gerar um arquivo com TODOS

$ for parte in $(ls *.csv | cut -c1-11 | sort | uniq)
do cat $(ls -X ${parte}[0-9].csv) > ${parte}TODOS.csv
done

Ai vc vai dizer 'po eu tenho arquivos txt e csv, e agora ?' Ora... o
que é problema para o linux e o bash ?

$ for ext in txt csv
for parte in $(ls *.${ext} | cut -c1-11 | sort | uniq)
do cat $(ls -X ${parte}[0-9].${ext}) > ${parte}TODOS.${ext}
done
done

Muito divertido, agora só falta vc criar um diretorio de backup e
brincar a vontade, adaptando estas linhas para o seu problema em
específico.
On 4/10/06, SuSE List <address@hidden> wrote:
>  Pessoal,
>
>  Boa tarde,
>  Estou com uma situação um pouco inusitada aqui....tenho a seguinte
>  listagem de arquivos:
>
>  Tem alguma forma ou lógica pra fazer em shell, a junção destes dois
>  arquivos, tipo um `cat 009200604052.csv >> 009200604051.csv` sabendo que
>  eu posso ter mais do que dois arquivos, tipo 009200604053.csv e
>  009200604054.csv (até um máximo de *9.csv) gerando ao final um "unico"
>  arquivo: 009200604051.csv
>
>  Algumas informações sobre a nomeação dos arquivos:
>
>  1-3 => codigo de cliente, variavel
>  4-11 => data (yyyymmdd), variavel em função do dia
>  12-12 => sequencial de 0-9, variavel em função do excel
>  14-16 => extensão (csv ou txt)
--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

[Prev in Thread] Current Thread [Next in Thread]