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

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

Re: [shell-script] detectar próxima linha de arquivos de remessa


From: Alexandre Mulatinho
Subject: Re: [shell-script] detectar próxima linha de arquivos de remessa
Date: Mon, 23 Aug 2010 23:25:47 -0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.11) Gecko/20100711 Thunderbird/3.0.6

Vamos lá,

Para pegar todas as linhas que comecem com 1, você digita:

sed -n '/^1/p' arquivo.txt

Da mesma forma que para o 2, voce digita:

sed -n '/^2/p' arquivo.txt

Então voce esta dizendo, imprima pra mim tudo que iniciar por 1 ou 2.

O resto não ficou claro pra mim, deve ser o vinho ;) É para pegar a
linha que tiver 2 e colocar no final do 1?????

sed -e "N;s/\n2/2/g" arquivo.txt

???

Saúde e abraços,
Mulatinho.

On 08/23/2010 09:58 PM, mrgraucio wrote:
>  
>
> Olá pessoal, quebrei muito a cabeça e decidi correr para vós.
>
> Preciso fazer o seguinte, eu recebo arquivos de remessas em que cada
> transação as vezes tem 1 linha e as vezes tem 2.
>
> A primeira linha tem 80 caracteres. A segunda varia de acordo com a
> transação.
>
> A primeira sempre começa com o número 1 indicando o tipo da transação,
> bem como a segunda que, quando existente, sempre começa com 2.
>
> O meu dilema é como fazer com que o shell detecte que, quando a
> próxima linha iniciar por 2 (se ela existir) eu a leia juntamente com
> a anterior?
>
> Eu tenho em mente fazer o seguinte, faria a leitura inicialmente de
> tudo que começa com 1 mas a linha seguinte não começa com 2 e depois
> elimiaria tudo que começa com este mesmo resultado, adicionando o -v
> no grep no comando dado anteriormente, correto?
>
> Ná prática a coisa acontece com o recebimento de um arquivo de lotes
> que vem cheinho de linhazinhas mais ou menos como a seguir:
>
> 10012010052500289870989500400642010052516141900000000000000000100600010900100000
> 10012010052500289870989500410642010052516171300000000000000000100600010900100000
> 10012010052500289870989500420642010052516190600000000000000000100600010900100000
> 10012010052500289870989500440592010052516260800000000000000000100600010900100000
> 10012010052500289870989500451072010052516265800000000000000000100600010900100000
> 2008200000070835
> 10012010052500289870989500460592010052516421500000000000000000100600010900100000
> 10012010052500289870989500471072010052516424300000000000000000100600010900100000
> 2008200000070837
>
> Gostaria então de primeiramente separar os valores que unicamente
> começam com 1 mas não tem a linha subsequente iniciando por 2, após
> fazer essa separação, só adicionaria o -v ao grep, caso seja com ele a
> possibilidade de fazer isso.
>
> Espero ter sido claro e me desculpem pela extensão da pergunta, mas
> temo não explicar corretamente a necessidade.
>
> Grande abraço!
>
> 


-- 
Alexandre Mulatinho
Analista de Suporte/Sistemas
Blog: http://mulatinho.wordpress.com 
Mail: address@hidden
Fone: +55 81 92781715



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



reply via email to

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