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: [email protected] Fone: +55 81 92781715 [As partes desta mensagem que não continham texto foram removidas]
