Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.623 ]
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
Script para criação de diretorio do usuario no Samba com A.D.
Inversor de links de download (ou qualquer outra String)
Script para acionamento de GPIO para Relé Raspberry Pi
Simples dialog script para escolha de gerenciador de janelas
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (4)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









