Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.615 ]
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
Instalação do Java Runtime Environment em distros Debian-like
Criar imagem ISO a partir de CD
Listar bolsas disponíveis no Senac
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
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Linux é a solução para o fim do Windows10? [RESOLVIDO] (7)
Assinador JNLP do Site Portal da Nota Fiscal Eletrônica (0)
Programa fora de escala na tela do pc (29)









