[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Relatorio de Quebra
From: |
MrBiTs |
Subject: |
Re: [shell-script] Relatorio de Quebra |
Date: |
Sat, 09 Jul 2011 08:00:44 -0300 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 07/08/2011 23:23 , Guilherme Chagas wrote:
> Pessoal, boa noite.
>
> Estou desenvolvendo um modulo de administração através de shell script,
> já tenho um pronto em cobol, porém prefiro utilizar o shell.. Estou com
> uma dificuldade na hora de gerar uma listagem de clientes onde os
> campos(variáveis) tenham uma posição fixa, (Ex: Campo "nome" começa na
> coluna 01, campo "email" na coluna 30 e assim por diante..).
>
> Se alguém puder ajudar agradeço.
Que saudades do COBOL e dos CNAB400.
Eu suponho que voce saiba exaramente onde cada "campo"do seu registro de
tamanho fixo comece e termine, então vamos usar uma
propriedade do bash (funciona na versão 3), que nos permite trabalhar com
substring. Seu formato é:
SUBSTR=${REGISTRO:INICIO:QTDCHAR}
Imaginando que temos
CODIGO PIC 9(6).
NOME PIC X(30).
SALARIO PIC 999999v99.
e temos registros assim (usei uma régua para controle):
1 2 3 4
12345678901234567890123456789012345678901234
000001FULANO DE TAL 00500000
você fará um laço para ler o arquivo e atribuirá uma variável, digamos, LINHA,
para cada linha, e fará:
LINHA='000001FULANO DE TAL 00500000'
CODIGO=${LINHA:0:6} # à partir do char 0, pegue 6 posições;
NOME=${LINHA:6:30} # à partir do char 6, pegue 30 posições;
SALARIO=${LINHA:36:8} # à partir do char 36, pegue 8 posições;
Só tome cuidado, pois bash comprime espaços quando encntra mais de um. Proteja
suas variáveis.
- --
LLAP
.0. MrBiTs - address@hidden
..0 GnuPG -
http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
000 http://www.mrbits.com.br
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)
iQEcBAEBCAAGBQJOGDTcAAoJEG7IGPwrPKWrOuUIAIm+6YtRPHcJSKwZqmADkE0p
BWI3/cyfK1EPxyH5n5o71wwSSii7r0uFri04FcbuT2lRlwnivaJ/1LBdJ2xfrBVi
RHtm3wj3oPgk7pq+uXtVd4mJ7QDt7huwPnCwRLO7/yuHYIAmj3pAomCjLvMbxObF
5yRqJP/nPXBqlY/2CGlUve9wmxa9o6lUfLhll/kpStacL2x4jXmT8ObfQyzNdyhE
SErohniVhkfavRzsmthNpmLC71/z28lSIAfnmVHfYl2Dfna+svVtOG5Ln9k0dt/O
96ziT6e9+T7XNKZ03eBIyX3rb6xLA/AVi+QrSBHMfbVr6FqeQd0CeHv0ZohabOI=
=lmfr
-----END PGP SIGNATURE-----
- Re: [shell-script] Relatorio de Quebra, (continued)
- Re: [shell-script] Relatorio de Quebra, MrBiTs, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, Jonathan Lessa, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, MrBiTs, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, Jonathan Lessa, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, MrBiTs, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, MrBiTs, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, Julio C. Neves, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, MrBiTs, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, Rodrigo R. Martins, 2011/07/09
- Re: [shell-script] Relatorio de Quebra, MrBiTs, 2011/07/09
Re: [shell-script] Relatorio de Quebra,
MrBiTs <=
Re: [shell-script] Relatorio de Quebra, Julio C. Neves, 2011/07/09
Relatorio de Quebra, Guilherme Chagas, 2011/07/10