Manipular um arquivo txt como se fosse uma planilha de calculo
Publicado por Rodney Wellington C. Barreto 19/10/2004
[ Hits: 9.435 ]
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
Listar e desconectar usuarios conectados no DB Progress 9.1c/d
Script de instalação Servidor MTA Postfix + Openwebmail
Papéis de parede aleatórios direto da internet
Nenhum comentário foi encontrado.
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
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
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
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)