Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.528 ]
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
Gerenciador de Conexões terminal server com Mysql
Verifica os artigos destaques da VOL
Listar bolsas disponíveis no Senac
Limpar e mostrar tamanho da lixeira no Samba
Nenhum coment�rio foi encontrado.
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Sempre que vou baixar algum pacote acontece o erro dpkg (7)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (12)