Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.695 ]
Homepage: http://rodneybr.t35.com
Este script faz uma pesquisa de campos num arquivo txt e lista na telas os resultados fazendo pequenos calculos, utiliza desde awk, fgrep, wc, sed, until, case, grep, fortamacao de cores no terninal e como fazer e utilizar pequenas funcoes. Um pequeno exemplo pra quem gosta de manipular arquivos textos como se fossem planilhas de cauculo. E necessario um arquivo texto para que ele funcione!
#!/bin/bash
#
# listacheque - Mostra a sistuacao do(s) cheque(s). E necessario o arquivo texto (cheques.txt)
#
# Autor: rodney barreto e-mail: rodney_qg@yahoo.com.br
# 28/09/2004 versao 1.0
#---------------------------------------------------------------------------------------------
# Situacao do cheque:
# aberto - baixado - cancelado
# Funcoes de Cabecalho e Rodape
Cabecalho(){
echo
tput bold
echo 'Numero Pago a(o) Data Pre_Data Valor Situacao'
tput sgr0
# Deixa a linha abaixo, da cor amarela
echo -e '{FONTE}33[33;1m====== ========================= ======== ======== ========= ========={FONTE}33[m'
}
Rodape(){
echo -e '{FONTE}33[33;1m====== ========================= ======== ======== ========= ========={FONTE}33[m'
}
clear
FIM=
until [ "$FIM" ]
do
# Menu
tput cup 1 5
tput bold
echo 'OPCAO - ACAO'
tput sgr0
tput cup 2 5
echo -ne '{FONTE}33[33;1m===== ===={FONTE}33[m'
tput cup 3 6
echo '(A) Lista cheque(s) aberto(s)'
tput cup 4 6
echo '(B) Lista cheque(s) baixado(s)'
tput cup 5 6
echo '(C) Lista cheque(s) cancelado(s)'
tput cup 6 6
echo '(T) Lista todos os cheques'
tput cup 7 6
echo '(S) Sair do programa'
tput cup 9 5
echo -n 'Escolha a opcao: '
read OPCAO
# Fim do Menu
FIM=1
case "$OPCAO" in
[Aa])
Cabecalho
# Imprime cheques abertos
fgrep aberto cheques.txt | tr _ ' '
Rodape
# Calcula a quantidade e o valor dos cheques abertos
fgrep aberto cheques.txt | awk '{} END {print NR,"cheque(s)"}'
fgrep aberto cheques.txt | awk '{VALOR=VALOR+$5} END {print "Total R$ ",VALOR}'
echo
read
FIM=
clear
;;
[Bb])
Cabecalho
# Imprime cheques baixados
fgrep baixado cheques.txt | tr _ ' '
Rodape
# Conta a quantidade e o valor dos cheques baixados
fgrep baixado cheques.txt | awk '{} END {print NR,"cheque(s)"}'
fgrep baixado cheques.txt | awk '{VALOR=VALOR+$5} END {print "Total R$ ",VALOR}'
echo
read
FIM=
clear
;;
[Cc])
Cabecalho
# Imprime cheques cancelados
fgrep cancelado cheques.txt
Rodape
# Conta a quantidade de cheques cancelados
echo "`sed -n '/*/p' cheques.txt | wc -l` cheque(s)"
echo
read
FIM=
clear
;;
[Tt])
Cabecalho
# Lista todos os cheques
cat cheques.txt | tr _ " "
echo
Rodape
# Conta a quantidade total de cheques
grep '.*' cheques.txt | awk '{} END {print NR,"cheques"}'
grep '.*' cheques.txt | awk '{VALOR=VALOR+$5} END {print "Total R$ ",VALOR}'
echo
read
FIM=
clear
;;
[Ss]) # Sai do programa
echo
exit
;;
*) # Opcao invalida para qualquer outro caracter
echo
echo "Opcao invalida!"
echo
read
FIM=
clear
;;
esac
done
# FIM do script
Exempo do arquivo cheques.txt
======================
850001 Boteco_da_esquina 07/04/04 -------- 21,45 baixado
850002 Super_Mercado 14/05/04 -------- 31,48 baixado
850003 * -------- -------- 00,00 cancelado
850004 Dist._Pinguins_Tux 03/06/04 -------- 53,33 baixado
850005 Dist._Pinguins_Tux 03/06/04 03/07/04 53,33 baixado
850006 Dist._Pinguins_Tux 03/06/04 03/08/04 53,33 baixado
850007 Taxi_do_Aeroporto 22/07/04 10/08/04 350,00 baixado
850008 Compra_da_Microsoft 27/08/04 27/09/04 99,67 baixado
850009 Compra_da_Microsoft 27/08/04 27/10/04 99,67 aberto
850010 Compra_da_Microsoft 27/08/04 27/11/04 99,67 aberto
850011 Oficina 03/09/04 -------- 124,00 baixado
850012 Oficina 03/09/04 03/10/04 124,00 baixado
del_user - cuida dos 4 passos para remover um usuário do sistema
Script de compilação do kernel 3.3.2 com cflags -march=native e patch 3.3.0-ck1 para ubuntu 11.10
Nenhum comentário foi encontrado.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Problema com som no laptop (5)
Quando vocês pararam de testar distros? (11)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









