Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.316 ]
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
Instalador do Nagios no Fedora 14 e CentOS 5
Mudança automatica de papel de parede no fluxbox
QMPlay2 20.12.16 Build para o Deepin 20 - Novo Esquema
Monta Pen-Drive Windows no Linux
Menu no terminal usando Shell Script
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como criar um robot em NTSL (Nelogica Trading System Language) para Profitchart
Use o Google PageSpeed Insights para verificar um site
Como Atualizar Fedora 39 para 40
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (31)
Instalacao Manjaro em notebook com placa de video hibrida [RESOLVIDO] (2)
filtrar só as pastas onde tem arquivo (2)