Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.445 ]
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
PDSHELL - Leia seus PDFs organizados em uma só pasta!
Detectar sistemas operacionais dos dispositivos na rede via TTL
Importar vários Emolticons de uma vez para amsn
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (7)