[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