shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Separar campos contidos numa linha


From: Flavio Junior
Subject: Re: [shell-script] Separar campos contidos numa linha
Date: Thu, 12 Jul 2007 19:02:07 -0300

Cara...

Eu imagino que não seja sempre A COB REDUZIDA, naquele campo, senão ate
diria pra voce usar o sed com substituição por numero de ocorrencia, ou
seja:

# sed 's/\ /_/8'
Ai ele vai substituir a 8a. ocorrencia do " " (espaço) por _ e depois voce
pode fazer seu tr ' ' '@' normalmente que nao via pegar essa string...

O problema é que deve ter ligações que diferem o numero de espaços em branco
da linha, então vejo duas coisas:

Ou usa o awk e faz um "percorre" do caracter X até Y e substitui espaço por
_, ou o que eu acho bem mais pratico

Veja os padroes que ocorrem com espaço e predetermina q esses devem ser
substituidos por outro sem espaço, tipo:

$ sed -i 's/A COB REDUZIDA/A_COB_REDUZIDA/;s/A COB
NORMAL/A_COB_NORMAL/;s/DDD REDUZIDO/DDD_REDUZIDO/' arquivo

O numero de variações que devem ocorrer no campo ali nao deve ser tao
grande...


Sorte,

Flávio do Carmo Junior

On 7/12/07, Alfredo Casanova <address@hidden> wrote:
>
>   Eu faria o seguinte
> antes de dar o sed que troca os espaços por @ (alias, vc pode usar o
> espaço
> em branco como delimitador no cut, não precisaria fazer isso, pelo que
> vi),
> vc dá um sed que substitui a string A COB REDUZIDA por alguma outra coisa,
> tipo "ACBRRDZ" ou algum codigo mais criativo e legível hehehe
> assim vc poderia diminuir o tamanho dos seus arquivos e manter a essência
> das informações.
> Depois é só usar o cut e tratar suas informações :)
>
>
> On 7/12/07, brunogcorrea <address@hidden<brunogcorrea%40yahoo.com.br>>
> wrote:
> >
> > Olá.
> >
> > Faço faculdade e moro em uma república com mais algumas pessoas.
> > Depois de algum tempo conferindo os gastos telefônicos de cada um no
> > papel resolvi fazer um programinha para dividir as contas
> > automaticamente. Numa nova versão, estou tentando utilizar um shell
> > script para organizar a conta de telefone que é baixada do site da
> > telefonica. A conta vem toda bagunçada, e sem nenhum delimitador para
> > cada um dos campos. Um exemplo está aqui:
> >
> > 036 25/06/07 46323433 POA SP 23H16M56 1,9 A COB REDUZIDA 0,87
> >
> > Utilizando o sed e o grep consigo transformar vários espaços em branco
> > em um @ (delimitador). No entanto, por exemplo, o campo TARIFA (A COB
> > REDUZIDA) possui espaços em branco e, portanto, tais espaços não
> > poderiam ser substituídos pelo delimitador. Da maneira que consegui
> > fazer, a 'tupla' ali de cima fica:
> >
> > 036@25/06/07@46323433@POA@SP@23H16M56@1,9@A@COB@REDUZIDA@0,87
> >
> > E a minha dúvida é a seguinte: Há possibilidade de eu fazer com que
> > ela fique da seguinte maneira:
> >
> > 036@25/06/07@46323433@POA SP@23H16M56@1,9@A COB REDUZIDA@0,87
> >
> > Ou seja, depois eu conseguirei recuperar a string "A COB REDUZIDA"
> > inteira, pois não há delimitador entre as palavras.
> >
> > Acho que o awk pode ser útil, mas ainda não consegui entender bem seu
> > funcionamento...
> >
> > Obrigado.
> >
> > p.s. Entrei no grupo faz pouco tempo, mas tenho acompanhado
> > regularmente as discussões, e estou gostando e aprendendo muito!
> > Parabéns a todos do grupo!
> >
> >
> >
>
> --
> []'s
> Alfredo Casanova
> Linux User #228230
> icq: 15793271
> msn: address@hidden <atcasanova%40gmail.com>
> aim: alfredotcasanova
> yim: atcasanova2
> tel: +55 61 84137319
> As aves têm na boca um dente chamado bico
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]