-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathagregador_prestacoes_por_ano.sh
executable file
·65 lines (59 loc) · 2.35 KB
/
agregador_prestacoes_por_ano.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
#
###############################################################################
# Copyright (C) 2016 Diego Rabatone Oliveira
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
# Este script serve para agregar arquivos de prestação de contas advindos
# diretamente da base do TSE:
# http://www.tse.jus.br/eleicoes/estatisticas/repositorio-de-dados-eleitorais
#
# Para executá-lo chame o script passando os argumentos requisitados. e.g.:
# ./agregador_prestacoes_por_ano prestacoes 2016 prestacoes-agregado
#
# O primeiro argumento é o diretório aonde estão os arquivos do TSE separados
# por estado. Neste caso também deve-se considerar que os arquivos de prestacão
# de contas do TSE vem por candidato e por partido, no mesmo diretório. Então
# se você quiser só um ou outro remova os arquivos que não deseja agregar.
# O segundo argumento é o ano ao qual a eleição se refere.
# O terceiro argumento é o nome do arquivo que você quer na saída.
#
# Este script considera os arquivos do TSE separados por estado e COM cabeçalho
# com o nome das colunas/variáveis.
#
# O arquivo de saída também já converte os dados para UTF-8.
if [[ $# -lt 3 ]] ; then
echo 'Argumentos: <diretorio> <ano> <nome>'
exit 1
fi
DIR=$1
ANO=$2
NOME="$3-$2.csv"
# Get the list of csv files on the current folder that would be read
cd $1
FILES=`ls *.txt`
# Convert all CSV files from ISO-8859-1 to UTF-8, generating new files
# wich names began with 'utf8_'
for FILE in $FILES;
do
iconv -f 'ISO-8859-1' -t 'UTF-8' $FILE > utf8_$FILE;
head -n1 utf8_$FILE > $NOME;
done
# For each CSV copy the content, without the header, to the final file
for FILE in $FILES;
do
tail -n +2 utf8_$FILE >> $NOME;
done