Não sei se te entendi, mas me pareceu que seu problema era juntar as linhas que começam com 2 às linhas anteriores à estas. Se assim for, uma boa forma de fazer um one-liner seria:
grep -B1 ^2 Arquivo | grep -v '^-*$' | paste -d "" - - Onde o grep procura as linhas começadas por 2 (^2) e vem junto a linha anterior (-B1). A saída disso terá um separador '--' entre cada par de linhas, então o grep seguinte (^-*$) visa excluir estas linhas. Para concatená-las, usei o paste com delimitador vazio (-d "" [o branco entre o d e a 1ª aspa é obrigatório]) e o par de traços, onde cada traço receberá uma linha da entrada primária. Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - SE turma de Shell/Zenity em 13/09 - [email protected] - SP turma de Shell em 14/08 - www.4Linux.com.br <http://www.4linux.com.br/> - Turmas fechadas em outras cidades ligue (21)8112-9988. --- @ WiseStamp Signature<http://my.wisestamp.com/link?u=63n3xfgzns9kh5v7&site=www.wisestamp.com/email-install>. Get it now<http://my.wisestamp.com/link?u=63n3xfgzns9kh5v7&site=www.wisestamp.com/email-install> Em 23 de agosto de 2010 21:58, mrgraucio <[email protected]>escreveu: > > > 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! > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [email protected] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [email protected] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
